diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables.meta
new file mode 100644
index 00000000000..9d5fdd687dd
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a61c55156e3f8a84d875bc7112899a9a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit-Examples.Demos.UX.Interactables.asmdef b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit-Examples.Demos.UX.Interactables.asmdef
new file mode 100644
index 00000000000..f410ac46cca
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit-Examples.Demos.UX.Interactables.asmdef
@@ -0,0 +1,12 @@
+{
+ "name": "MixedRealityToolkit-Examples.Demos.UX.Interactables",
+ "references": [
+ "Microsoft.MixedReality.Toolkit.SDK",
+ "Microsoft.MixedReality.Toolkit",
+ "Microsoft.MixedReality.Toolkit.SDK.Inspectors"
+ ],
+ "optionalUnityReferences": [],
+ "includePlatforms": [],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false
+}
\ No newline at end of file
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit-Examples.Demos.UX.Interactables.asmdef.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit-Examples.Demos.UX.Interactables.asmdef.meta
new file mode 100644
index 00000000000..999246623bf
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit-Examples.Demos.UX.Interactables.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4d57ec26792593d44b17cd3f5d582f48
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs.meta
new file mode 100644
index 00000000000..39d3f84976e
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2526a1fc2c3a65a4dba0ee45b2baa389
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Cheese.prefab b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Cheese.prefab
new file mode 100644
index 00000000000..9c18e99f20f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Cheese.prefab
@@ -0,0 +1,164 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1976327359951936}
+ m_IsPrefabParent: 1
+--- !u!1 &1513309078028022
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4463254989225456}
+ - component: {fileID: 33406258692433058}
+ - component: {fileID: 23197364594414254}
+ m_Layer: 0
+ m_Name: Cheese
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1976327359951936
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4538655477204070}
+ - component: {fileID: 65785153276639906}
+ - component: {fileID: 114528208345280030}
+ m_Layer: 0
+ m_Name: Cheese
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4463254989225456
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1513309078028022}
+ 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: 4538655477204070}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4538655477204070
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1976327359951936}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.047473792, y: 0.047473792, z: 0.047473792}
+ m_Children:
+ - {fileID: 4463254989225456}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23197364594414254
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1513309078028022}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 71d471797c0e430783230146721c3fcb, type: 2}
+ - {fileID: 2100000, guid: 71d471797c0e430783230146721c3fcb, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33406258692433058
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1513309078028022}
+ m_Mesh: {fileID: 4300000, guid: 3f8a3164171bcba42b1e2b051b994a3c, type: 3}
+--- !u!65 &65785153276639906
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1976327359951936}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 4.1451945, y: 2.7606258, z: 3.7189484}
+ m_Center: {x: 3.3503172, y: 1.2563689, z: -1.3594743}
+--- !u!114 &114528208345280030
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1976327359951936}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 1
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1513309078028022}
+ Themes:
+ - {fileID: 11400000, guid: 1872be27ce323c54f93896976d90d5c4, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Cheese.prefab.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Cheese.prefab.meta
new file mode 100644
index 00000000000..524902e9347
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Cheese.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e9e54ebd208487c409e32502a50a1f20
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/CoffeeCup.prefab b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/CoffeeCup.prefab
new file mode 100644
index 00000000000..63abac67a46
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/CoffeeCup.prefab
@@ -0,0 +1,237 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1128101275641750}
+ m_IsPrefabParent: 1
+--- !u!1 &1086727123993050
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4713702660363778}
+ - component: {fileID: 33096080538245824}
+ - component: {fileID: 23921251163721338}
+ m_Layer: 0
+ m_Name: CoffeeCup
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1128101275641750
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4359496519673794}
+ - component: {fileID: 136734857329372230}
+ - component: {fileID: 114664771837106342}
+ m_Layer: 0
+ m_Name: CoffeeCup
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1409004022357944
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4689248142197956}
+ - component: {fileID: 33932149283358908}
+ - component: {fileID: 23014590061986322}
+ m_Layer: 0
+ m_Name: Coffee
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4359496519673794
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1128101275641750}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.09836525, y: 0.09836526, z: 0.09836526}
+ m_Children:
+ - {fileID: 4689248142197956}
+ - {fileID: 4713702660363778}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4689248142197956
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1409004022357944}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.00000011920929, y: 1.99, z: -0.00000017881393}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4359496519673794}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4713702660363778
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1086727123993050}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: -0.0164492, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4359496519673794}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23014590061986322
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1409004022357944}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: a7448698c15706f48905e44d8e76f2b5, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23921251163721338
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1086727123993050}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 680505b4b4f3400f9fd3ebb242751819, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33096080538245824
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1086727123993050}
+ m_Mesh: {fileID: 4300000, guid: aa39033344b08ce4bab10cc11dc6d6b8, type: 3}
+--- !u!33 &33932149283358908
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1409004022357944}
+ m_Mesh: {fileID: 4300002, guid: aa39033344b08ce4bab10cc11dc6d6b8, type: 3}
+--- !u!114 &114664771837106342
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1128101275641750}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 1
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1409004022357944}
+ Themes:
+ - {fileID: 11400000, guid: db76f3ab99da0ec48ba3c57db801718d, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!136 &136734857329372230
+CapsuleCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1128101275641750}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ m_Radius: 1.2
+ m_Height: 3
+ m_Direction: 1
+ m_Center: {x: 0, y: 1.17, z: 0}
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/CoffeeCup.prefab.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/CoffeeCup.prefab.meta
new file mode 100644
index 00000000000..74da9c0c34d
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/CoffeeCup.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d12fcfca48d5bea4885b7957a82235f8
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_Bucky.prefab b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_Bucky.prefab
new file mode 100644
index 00000000000..58ccea08ff1
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_Bucky.prefab
@@ -0,0 +1,192 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1705988989258782}
+ m_IsPrefabParent: 1
+--- !u!1 &1029119715029460
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4741312089349902}
+ - component: {fileID: 33709057489713720}
+ - component: {fileID: 23857348391592848}
+ m_Layer: 0
+ m_Name: Platonic
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1084956206292398
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4359952105223406}
+ m_Layer: 0
+ m_Name: CINEMA_4D_Editor
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1705988989258782
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4896987550614830}
+ - component: {fileID: 135097812019856892}
+ - component: {fileID: 114141171559718660}
+ m_Layer: 0
+ m_Name: Model_Bucky
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4359952105223406
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1084956206292398}
+ m_LocalRotation: {x: 0.14338154, y: 0.8685041, z: -0.07728779, w: -0.46815488}
+ m_LocalPosition: {x: -4.684558, y: 2.8959, z: 7.119633}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4896987550614830}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4741312089349902
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1029119715029460}
+ 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: 4896987550614830}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4896987550614830
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1705988989258782}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.087223016, y: 0.087223046, z: 0.087223046}
+ m_Children:
+ - {fileID: 4359952105223406}
+ - {fileID: 4741312089349902}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23857348391592848
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1029119715029460}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 53ea63593b32415faf734536616f5fb3, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33709057489713720
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1029119715029460}
+ m_Mesh: {fileID: 4300000, guid: 5838ea95659d32943afec95550ac1ce1, type: 3}
+--- !u!114 &114141171559718660
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1705988989258782}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 1
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1029119715029460}
+ Themes:
+ - {fileID: 11400000, guid: fac50a31c0d7baa438665cd4892903c0, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!135 &135097812019856892
+SphereCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1705988989258782}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 1.05
+ m_Center: {x: 0, y: 0, z: 0}
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_Bucky.prefab.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_Bucky.prefab.meta
new file mode 100644
index 00000000000..ef0a3151cce
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_Bucky.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 50eb8d97f29f335409ec2df393ed6cc5
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_PushButton.prefab b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_PushButton.prefab
new file mode 100644
index 00000000000..033659ac199
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_PushButton.prefab
@@ -0,0 +1,236 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1439781781207532}
+ m_IsPrefabParent: 1
+--- !u!1 &1439781781207532
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4558003219915732}
+ - component: {fileID: 65437868389245264}
+ - component: {fileID: 114658294074506726}
+ m_Layer: 0
+ m_Name: Model_PushButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1586752313079092
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4085199960081454}
+ - component: {fileID: 33657163125967084}
+ - component: {fileID: 23215011570850822}
+ m_Layer: 0
+ m_Name: Cylinder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1698466255486918
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4437912341085128}
+ - component: {fileID: 33786917646565832}
+ - component: {fileID: 23609469279695618}
+ m_Layer: 0
+ m_Name: Tube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4085199960081454
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1586752313079092}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0.21721308, z: 7.105427e-17}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4558003219915732}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4437912341085128
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1698466255486918}
+ 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: 4558003219915732}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4558003219915732
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1439781781207532}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.08767561, y: 0.08767561, z: 0.08767561}
+ m_Children:
+ - {fileID: 4085199960081454}
+ - {fileID: 4437912341085128}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!23 &23215011570850822
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1586752313079092}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b0fcdc3322e34d9ea83e8399bd9f4031, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23609469279695618
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1698466255486918}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 680505b4b4f3400f9fd3ebb242751819, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33657163125967084
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1586752313079092}
+ m_Mesh: {fileID: 4300000, guid: 5308c0eb5c6ed4647b3797671dc2e5f3, type: 3}
+--- !u!33 &33786917646565832
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1698466255486918}
+ m_Mesh: {fileID: 4300002, guid: 5308c0eb5c6ed4647b3797671dc2e5f3, type: 3}
+--- !u!65 &65437868389245264
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1439781781207532}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1.2, y: 0.7, z: 1.2}
+ m_Center: {x: 0, y: 0.1, z: 0}
+--- !u!114 &114658294074506726
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1439781781207532}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 1
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1586752313079092}
+ Themes:
+ - {fileID: 11400000, guid: 747264624b7f3934b8b507fdb1a20e51, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_PushButton.prefab.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_PushButton.prefab.meta
new file mode 100644
index 00000000000..0aa78887d50
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/Model_PushButton.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 29a6f5316e0868e47adff5eee8945193
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/balloon.prefab b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/balloon.prefab
new file mode 100644
index 00000000000..0a85ec48af6
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/balloon.prefab
@@ -0,0 +1,396 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1234542489422424}
+ m_IsPrefabParent: 1
+--- !u!1 &1018326128813824
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4541501316219396}
+ - component: {fileID: 33960803321776138}
+ - component: {fileID: 23439561744290356}
+ m_Layer: 0
+ m_Name: pCone1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1025148138724202
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4983590217205064}
+ m_Layer: 0
+ m_Name: ballon
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1234542489422424
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4897534128531766}
+ - component: {fileID: 135491218135748292}
+ - component: {fileID: 114664674115198144}
+ m_Layer: 0
+ m_Name: balloon
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1455067096291350
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4765656579355974}
+ - component: {fileID: 33581972815195846}
+ - component: {fileID: 23946111714476084}
+ m_Layer: 0
+ m_Name: pCylinder1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1592521002752684
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4881971242058450}
+ m_Layer: 0
+ m_Name: Camera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1596551078955020
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4054538094955656}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1852769387633482
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4842944675713438}
+ - component: {fileID: 33302225960495750}
+ - component: {fileID: 23810779498705574}
+ m_Layer: 0
+ m_Name: pSphere1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4054538094955656
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1596551078955020}
+ m_LocalRotation: {x: 0.46193975, y: 0.3314136, z: -0.19134171, w: 0.8001032}
+ m_LocalPosition: {x: 2, y: 2, z: 2}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4897534128531766}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4541501316219396
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1018326128813824}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0.03129941, z: 0}
+ m_LocalScale: {x: 0.117395096, y: 0.117395096, z: 0.117395096}
+ m_Children: []
+ m_Father: {fileID: 4983590217205064}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4765656579355974
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1455067096291350}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0.01709638, z: 0}
+ m_LocalScale: {x: 0.010978124, y: 1.9011508, z: 0.010978124}
+ m_Children: []
+ m_Father: {fileID: 4983590217205064}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4842944675713438
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1852769387633482}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.0000000023283064, y: 0.031449, z: -0.0000000027939677}
+ m_LocalScale: {x: 1, y: 1.1527799, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4983590217205064}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4881971242058450
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1592521002752684}
+ m_LocalRotation: {x: -0.030843565, y: -0.7064338, z: 0.030843565, w: 0.7064338}
+ m_LocalPosition: {x: -0, y: 0.75, z: 4}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4897534128531766}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4897534128531766
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1234542489422424}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 5.144715, y: 5.1447153, z: 5.1447153}
+ m_Children:
+ - {fileID: 4983590217205064}
+ - {fileID: 4881971242058450}
+ - {fileID: 4054538094955656}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4983590217205064
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1025148138724202}
+ 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: 4541501316219396}
+ - {fileID: 4765656579355974}
+ - {fileID: 4842944675713438}
+ m_Father: {fileID: 4897534128531766}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23439561744290356
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1018326128813824}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 71d573ea4cb045cdadc98e56044f6d2c, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23810779498705574
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1852769387633482}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 71d573ea4cb045cdadc98e56044f6d2c, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23946111714476084
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1455067096291350}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 680505b4b4f3400f9fd3ebb242751819, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33302225960495750
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1852769387633482}
+ m_Mesh: {fileID: 4300000, guid: 54f72652009c7574a96c8d088d1c78ef, type: 3}
+--- !u!33 &33581972815195846
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1455067096291350}
+ m_Mesh: {fileID: 4300004, guid: 54f72652009c7574a96c8d088d1c78ef, type: 3}
+--- !u!33 &33960803321776138
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1018326128813824}
+ m_Mesh: {fileID: 4300002, guid: 54f72652009c7574a96c8d088d1c78ef, type: 3}
+--- !u!114 &114664674115198144
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1234542489422424}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 1
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1852769387633482}
+ Themes:
+ - {fileID: 11400000, guid: ce58007a668e3214abb10622861eb3aa, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!135 &135491218135748292
+SphereCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1234542489422424}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.015
+ m_Center: {x: 0, y: 0.045, z: 0}
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/balloon.prefab.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/balloon.prefab.meta
new file mode 100644
index 00000000000..37f57ad4f0c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Prefabs/balloon.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0ceaaf28e492a284fbf57901d04075ad
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes.meta
new file mode 100644
index 00000000000..8c2cb3580ab
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1ebd60ed96f85694494c3c36693f1220
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes/InteractablesGallery.unity b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes/InteractablesGallery.unity
new file mode 100644
index 00000000000..1336df1f2d3
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes/InteractablesGallery.unity
@@ -0,0 +1,2963 @@
+%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: 9
+ 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}
+ m_UseRadianceAmbientProbe: 0
+--- !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: 10
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 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: 1
+ 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_ShowResolutionOverlay: 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!1 &33813273
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 33813275}
+ - component: {fileID: 33813274}
+ 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 &33813274
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 33813273}
+ 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: 0
+ 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_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &33813275
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 33813273}
+ 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: 2
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &79737367
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 79737368}
+ - component: {fileID: 79737369}
+ m_Layer: 0
+ m_Name: CheckboxCollection
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &79737368
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 79737367}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.04000002, y: 0.083, z: 0.47179997}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 2077684431}
+ - {fileID: 978914005}
+ - {fileID: 540275418}
+ m_Father: {fileID: 561651893}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &79737369
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 79737367}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cf12ee76e7e00a44a9a84256760020e6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ ignoreInactiveTransforms: 1
+ sortType: 0
+ surfaceType: 1
+ orientType: 3
+ layout: 0
+ radius: 2
+ radialRange: 180
+ rows: 3
+ cellWidth: 0.07
+ cellHeight: 0.07
+--- !u!4 &110589378 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4607159678781596, guid: d5e0e8cc740eb134789fd1f6bb5bb80a,
+ type: 2}
+ m_PrefabInternal: {fileID: 1582242360}
+--- !u!1001 &288673879
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.size
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4582855949261192, guid: 51cc6641d88b49d46bd38572540efe6c, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: -0.157
+ objectReference: {fileID: 0}
+ - target: {fileID: 4582855949261192, guid: 51cc6641d88b49d46bd38572540efe6c, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.07900002
+ objectReference: {fileID: 0}
+ - target: {fileID: 4582855949261192, guid: 51cc6641d88b49d46bd38572540efe6c, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.48480004
+ objectReference: {fileID: 0}
+ - target: {fileID: 4582855949261192, guid: 51cc6641d88b49d46bd38572540efe6c, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4582855949261192, guid: 51cc6641d88b49d46bd38572540efe6c, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4582855949261192, guid: 51cc6641d88b49d46bd38572540efe6c, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4582855949261192, guid: 51cc6641d88b49d46bd38572540efe6c, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4582855949261192, guid: 51cc6641d88b49d46bd38572540efe6c, type: 2}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: VoiceCommand
+ value: Toggle Button
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: InputActionId
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: RequiresGaze
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].Name
+ value: AudioEvent
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].Event.m_TypeName
+ value: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].ClassName
+ value: InteractableAudioReceiver
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].HideUnityEvents
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].Type
+ value: 17
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].Label
+ value: Audio Clip
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].Name
+ value: AudioClip
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].Tooltip
+ value: Assign an audioclip to play on click
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].EventValue.m_TypeName
+ value: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ objectReference: {fileID: 0}
+ - target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].AudioClipValue
+ value:
+ objectReference: {fileID: 8300000, guid: b11f08112e7059542ae51c208db0af7c, type: 3}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 51cc6641d88b49d46bd38572540efe6c, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!4 &288673880 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4582855949261192, guid: 51cc6641d88b49d46bd38572540efe6c,
+ type: 2}
+ m_PrefabInternal: {fileID: 288673879}
+--- !u!1 &289420117
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 289420119}
+ - component: {fileID: 289420118}
+ m_Layer: 0
+ m_Name: MixedRealityToolkit
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &289420118
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 289420117}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ activeProfile: {fileID: 11400000, guid: 31a611a779d3499e8e35f1a2018ca841, type: 2}
+--- !u!4 &289420119
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 289420117}
+ 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: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &405573173
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 1190688397}
+ m_Modifications:
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: -0.06999999
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 1850867357197028, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_Name
+ value: Toggle (2)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!4 &405573174 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df,
+ type: 2}
+ m_PrefabInternal: {fileID: 405573173}
+--- !u!1 &469507211
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 469507212}
+ - component: {fileID: 469507214}
+ m_Layer: 0
+ m_Name: ReceiverExample (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &469507212
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 469507211}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.746, y: 0.149, z: 0.49399996}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1954408011}
+ m_Father: {fileID: 561651893}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &469507214
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 469507211}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f45de32ad1e8334a8bd1ca76cb7dd83, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Interactable: {fileID: 1885692589}
+ InteractableSearchScope: 0
+ Events:
+ - Name: CustomEvent
+ Event:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ ClassName: CustomInteractablesReceiver
+ Settings: []
+ HideUnityEvents: 1
+--- !u!4 &519184499 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4558003219915732, guid: 29a6f5316e0868e47adff5eee8945193,
+ type: 2}
+ m_PrefabInternal: {fileID: 569537905}
+--- !u!1001 &540275417
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 79737368}
+ m_Modifications:
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: -0.06999999
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 1775492867674862, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_Name
+ value: CheckBox (2)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!4 &540275418 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f,
+ type: 2}
+ m_PrefabInternal: {fileID: 540275417}
+--- !u!1001 &548018554
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 114809329666163580, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: Profiles.Array.data[0].Themes.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114809329666163580, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: Profiles.Array.data[1].Themes.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114809329666163580, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: Profiles.Array.data[2].Themes.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4249060311757736, guid: 40da8a1b3b26ba743b892d890b95a9f9, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: -0.57
+ objectReference: {fileID: 0}
+ - target: {fileID: 4249060311757736, guid: 40da8a1b3b26ba743b892d890b95a9f9, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.07599999
+ objectReference: {fileID: 0}
+ - target: {fileID: 4249060311757736, guid: 40da8a1b3b26ba743b892d890b95a9f9, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.48800004
+ objectReference: {fileID: 0}
+ - target: {fileID: 4249060311757736, guid: 40da8a1b3b26ba743b892d890b95a9f9, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4249060311757736, guid: 40da8a1b3b26ba743b892d890b95a9f9, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4249060311757736, guid: 40da8a1b3b26ba743b892d890b95a9f9, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4249060311757736, guid: 40da8a1b3b26ba743b892d890b95a9f9, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4249060311757736, guid: 40da8a1b3b26ba743b892d890b95a9f9, type: 2}
+ propertyPath: m_RootOrder
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 114575116837749478, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: m_havePropertiesChanged
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114575116837749478, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: m_isInputParsingRequired
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 33206966778645120, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: m_Mesh
+ value:
+ objectReference: {fileID: 0}
+ - target: {fileID: 114809329666163580, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: Dimensions
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114809329666163580, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: Profiles.Array.data[0].Themes.Array.data[1]
+ value:
+ objectReference: {fileID: 11400000, guid: 29b20ecfcc16eef4dad8989c360f2988,
+ type: 2}
+ - target: {fileID: 114809329666163580, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: Profiles.Array.data[1].Themes.Array.data[1]
+ value:
+ objectReference: {fileID: 11400000, guid: cbde7890146c3024d928b7afc2e16065,
+ type: 2}
+ - target: {fileID: 114809329666163580, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: Profiles.Array.data[2].Themes.Array.data[1]
+ value:
+ objectReference: {fileID: 11400000, guid: 0c4c73f326f602744bdcfff481fd6f20,
+ type: 2}
+ - target: {fileID: 114809329666163580, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ propertyPath: InputActionId
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 40da8a1b3b26ba743b892d890b95a9f9, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!1 &561651892
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 561651893}
+ - component: {fileID: 561651894}
+ m_Layer: 0
+ m_Name: Interactables
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &561651893
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 561651892}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 1}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1437088831}
+ - {fileID: 2125049001}
+ - {fileID: 1441615695}
+ - {fileID: 288673880}
+ - {fileID: 110589378}
+ - {fileID: 1489297081}
+ - {fileID: 469507212}
+ - {fileID: 1672550136}
+ - {fileID: 1332690819}
+ - {fileID: 79737368}
+ - {fileID: 1190688397}
+ - {fileID: 1070904456}
+ - {fileID: 519184499}
+ - {fileID: 1870333360}
+ - {fileID: 1992958651}
+ - {fileID: 1092125489}
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &561651894
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 561651892}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: afed44e9381983c42827b48d56b1af17, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ HeadOffset: {x: 0, y: 0, z: 1}
+--- !u!1001 &569537905
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 4558003219915732, guid: 29a6f5316e0868e47adff5eee8945193, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: -0.25899997
+ objectReference: {fileID: 0}
+ - target: {fileID: 4558003219915732, guid: 29a6f5316e0868e47adff5eee8945193, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: -0.168
+ objectReference: {fileID: 0}
+ - target: {fileID: 4558003219915732, guid: 29a6f5316e0868e47adff5eee8945193, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.269
+ objectReference: {fileID: 0}
+ - target: {fileID: 4558003219915732, guid: 29a6f5316e0868e47adff5eee8945193, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: 4558003219915732, guid: 29a6f5316e0868e47adff5eee8945193, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4558003219915732, guid: 29a6f5316e0868e47adff5eee8945193, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4558003219915732, guid: 29a6f5316e0868e47adff5eee8945193, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: 4558003219915732, guid: 29a6f5316e0868e47adff5eee8945193, type: 2}
+ propertyPath: m_RootOrder
+ value: 12
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 29a6f5316e0868e47adff5eee8945193, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!1 &584760442
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 584760443}
+ - component: {fileID: 584760447}
+ - component: {fileID: 584760446}
+ - component: {fileID: 584760445}
+ - component: {fileID: 584760444}
+ m_Layer: 0
+ m_Name: Backpanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &584760443
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 584760442}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.0812, z: 0}
+ m_LocalScale: {x: 0.5, y: 0.587617, z: 0.01}
+ m_Children: []
+ m_Father: {fileID: 615548497}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!54 &584760444
+Rigidbody:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 584760442}
+ serializedVersion: 2
+ m_Mass: 100
+ m_Drag: 0
+ m_AngularDrag: 0.05
+ m_UseGravity: 0
+ m_IsKinematic: 1
+ m_Interpolate: 0
+ m_Constraints: 126
+ m_CollisionDetection: 0
+--- !u!23 &584760445
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 584760442}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: f40914b49f8741e39df5b08d3db15497, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!65 &584760446
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 584760442}
+ 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!33 &584760447
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 584760442}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &615548496
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 615548497}
+ m_Layer: 0
+ m_Name: SceneDescriptionPanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &615548497
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 615548496}
+ m_LocalRotation: {x: 0, y: 0.38268343, z: 0, w: 0.92387956}
+ m_LocalPosition: {x: 1.218, y: 0.331, z: 1.729}
+ m_LocalScale: {x: 2.0953145, y: 2.0953145, z: 2.0953145}
+ m_Children:
+ - {fileID: 848850254}
+ - {fileID: 584760443}
+ - {fileID: 1081310371}
+ - {fileID: 1510982889}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0}
+--- !u!1001 &635986447
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 4359496519673794, guid: d12fcfca48d5bea4885b7957a82235f8, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: -0.516
+ objectReference: {fileID: 0}
+ - target: {fileID: 4359496519673794, guid: d12fcfca48d5bea4885b7957a82235f8, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: -0.279
+ objectReference: {fileID: 0}
+ - target: {fileID: 4359496519673794, guid: d12fcfca48d5bea4885b7957a82235f8, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.25499994
+ objectReference: {fileID: 0}
+ - target: {fileID: 4359496519673794, guid: d12fcfca48d5bea4885b7957a82235f8, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4359496519673794, guid: d12fcfca48d5bea4885b7957a82235f8, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4359496519673794, guid: d12fcfca48d5bea4885b7957a82235f8, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4359496519673794, guid: d12fcfca48d5bea4885b7957a82235f8, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4359496519673794, guid: d12fcfca48d5bea4885b7957a82235f8, type: 2}
+ propertyPath: m_RootOrder
+ value: 11
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: d12fcfca48d5bea4885b7957a82235f8, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!1001 &802010850
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 1190688397}
+ m_Modifications:
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.0000000037252903
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 1850867357197028, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_Name
+ value: Toggle (1)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!4 &802010851 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df,
+ type: 2}
+ m_PrefabInternal: {fileID: 802010850}
+--- !u!1 &848850253
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 848850254}
+ - component: {fileID: 848850256}
+ - component: {fileID: 848850255}
+ m_Layer: 0
+ m_Name: Break
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &848850254
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 848850253}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.266, z: -0.004}
+ m_LocalScale: {x: 0.49, y: 0.003072646, z: 0.01}
+ m_Children: []
+ m_Father: {fileID: 615548497}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &848850255
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 848850253}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d5334c45caee46be937b095a1e977dc6, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &848850256
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 848850253}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1001 &905760910
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: OnClick.m_PersistentCalls.m_Calls.Array.size
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Event.m_PersistentCalls.m_Calls.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[1].ArrayValue.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].EventValue.m_PersistentCalls.m_Calls.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4899954742063566, guid: 02c524b22137b5449904f5395141cc73, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: -0.157
+ objectReference: {fileID: 0}
+ - target: {fileID: 4899954742063566, guid: 02c524b22137b5449904f5395141cc73, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.152
+ objectReference: {fileID: 0}
+ - target: {fileID: 4899954742063566, guid: 02c524b22137b5449904f5395141cc73, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.48480004
+ objectReference: {fileID: 0}
+ - target: {fileID: 4899954742063566, guid: 02c524b22137b5449904f5395141cc73, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4899954742063566, guid: 02c524b22137b5449904f5395141cc73, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4899954742063566, guid: 02c524b22137b5449904f5395141cc73, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4899954742063566, guid: 02c524b22137b5449904f5395141cc73, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4899954742063566, guid: 02c524b22137b5449904f5395141cc73, type: 2}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Event.m_TypeName
+ value: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Name
+ value: OnFocus
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].ClassName
+ value: InteractableOnFocusReceiver
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].HideUnityEvents
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].Type
+ value: 18
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].Label
+ value: On Focus Off
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].Name
+ value: OnFocusOff
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].Tooltip
+ value: Focus has left the object
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].IntValue
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].EventValue.m_TypeName
+ value: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[1].Type
+ value: 19
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[1].Label
+ value: Gestuer Manipulator
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[1].Name
+ value: Manipulators
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[1].Tooltip
+ value: A GameObject containing a InteractableGestureManipulator
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[1].IntValue
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[1].EventValue.m_TypeName
+ value: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[1].ArrayValue.Array.data[0]
+ value:
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: IsGlobal
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: InputActionId
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Event.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+ value: 6
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Event.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].EventValue.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+ value: 6
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].EventValue.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Event.m_PersistentCalls.m_Calls.Array.data[0].m_Target
+ value:
+ objectReference: {fileID: 2125049000}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].EventValue.m_PersistentCalls.m_Calls.Array.data[0].m_Target
+ value:
+ objectReference: {fileID: 2125049000}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Event.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+ value: SetActive
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Event.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
+ value: UnityEngine.Object, UnityEngine
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Event.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].EventValue.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+ value: SetActive
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: Events.Array.data[0].Settings.Array.data[0].EventValue.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
+ value: UnityEngine.Object, UnityEngine
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: VoiceCommand
+ value:
+ objectReference: {fileID: 0}
+ - target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ propertyPath: RequiresGaze
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 02c524b22137b5449904f5395141cc73, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!1001 &978914004
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 79737368}
+ m_Modifications:
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.0000000037252903
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 1775492867674862, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_Name
+ value: CheckBox (1)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!4 &978914005 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f,
+ type: 2}
+ m_PrefabInternal: {fileID: 978914004}
+--- !u!4 &1070904456 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4359496519673794, guid: d12fcfca48d5bea4885b7957a82235f8,
+ type: 2}
+ m_PrefabInternal: {fileID: 635986447}
+--- !u!1 &1081310370
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1081310371}
+ - component: {fileID: 1081310372}
+ m_Layer: 0
+ m_Name: MRTK_Logo
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1081310371
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1081310370}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.094, y: 0.317, z: -0.019582}
+ m_LocalScale: {x: 0.025, y: 0.025, z: 0.025}
+ m_Children: []
+ m_Father: {fileID: 615548497}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!212 &1081310372
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1081310370}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 10
+ m_Sprite: {fileID: 21300000, guid: 84643a20fa6b4fa7969ef84ad2e40992, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 5.12, y: 2.24}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!4 &1092125489 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4538655477204070, guid: e9e54ebd208487c409e32502a50a1f20,
+ type: 2}
+ m_PrefabInternal: {fileID: 1432196622}
+--- !u!114 &1093241601 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ m_PrefabInternal: {fileID: 905760910}
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+--- !u!1 &1190688396
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1190688397}
+ - component: {fileID: 1190688398}
+ m_Layer: 0
+ m_Name: ToggleCollection
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1190688397
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1190688396}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.25800002, y: 0.083, z: 0.47179997}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1688406054}
+ - {fileID: 802010851}
+ - {fileID: 405573174}
+ m_Father: {fileID: 561651893}
+ m_RootOrder: 10
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1190688398
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1190688396}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cf12ee76e7e00a44a9a84256760020e6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ ignoreInactiveTransforms: 1
+ sortType: 0
+ surfaceType: 1
+ orientType: 3
+ layout: 0
+ radius: 2
+ radialRange: 180
+ rows: 3
+ cellWidth: 0.07
+ cellHeight: 0.07
+--- !u!1 &1259682757
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1259682758}
+ - component: {fileID: 1259682760}
+ - component: {fileID: 1259682759}
+ m_Layer: 0
+ m_Name: Header
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1259682758
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1259682757}
+ 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: 2049789948}
+ 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: 64}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!114 &1259682759
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1259682757}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+ Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+ m_text: 'Works On
+
+ All Platforms'
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_outlineColor:
+ serializedVersion: 2
+ rgba: 4278190080
+ m_fontSize: 24
+ m_fontSizeBase: 24
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_textAlignment: 260
+ m_isAlignmentEnumConverted: 1
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_firstOverflowCharacterIndex: -1
+ m_linkedTextComponent: {fileID: 0}
+ m_isLinkedTextComponent: 0
+ m_isTextTruncated: 0
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_ignoreRectMaskCulling: 0
+ m_ignoreCulling: 1
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_firstVisibleCharacter: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: -17.611118}
+ m_textInfo:
+ textComponent: {fileID: 1259682759}
+ characterCount: 22
+ spriteCount: 0
+ spaceCount: 3
+ wordCount: 4
+ linkCount: 0
+ lineCount: 2
+ pageCount: 1
+ materialCount: 1
+ m_havePropertiesChanged: 0
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_spriteAnimator: {fileID: 0}
+ m_isInputParsingRequired: 0
+ m_inputSource: 0
+ m_hasFontAssetChanged: 0
+ m_subTextObjects:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &1259682760
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1259682757}
+ m_CullTransparentMesh: 0
+--- !u!1001 &1324622404
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 4896987550614830, guid: 50eb8d97f29f335409ec2df393ed6cc5, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: -0.056
+ objectReference: {fileID: 0}
+ - target: {fileID: 4896987550614830, guid: 50eb8d97f29f335409ec2df393ed6cc5, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: -0.17
+ objectReference: {fileID: 0}
+ - target: {fileID: 4896987550614830, guid: 50eb8d97f29f335409ec2df393ed6cc5, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.26699996
+ objectReference: {fileID: 0}
+ - target: {fileID: 4896987550614830, guid: 50eb8d97f29f335409ec2df393ed6cc5, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4896987550614830, guid: 50eb8d97f29f335409ec2df393ed6cc5, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4896987550614830, guid: 50eb8d97f29f335409ec2df393ed6cc5, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4896987550614830, guid: 50eb8d97f29f335409ec2df393ed6cc5, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4896987550614830, guid: 50eb8d97f29f335409ec2df393ed6cc5, type: 2}
+ propertyPath: m_RootOrder
+ value: 13
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 50eb8d97f29f335409ec2df393ed6cc5, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!1001 &1332690818
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 4894033903586032, guid: 8b83134143223104c9bc3865a565cab3, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0.44950002
+ objectReference: {fileID: 0}
+ - target: {fileID: 4894033903586032, guid: 8b83134143223104c9bc3865a565cab3, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.1539
+ objectReference: {fileID: 0}
+ - target: {fileID: 4894033903586032, guid: 8b83134143223104c9bc3865a565cab3, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.47180003
+ objectReference: {fileID: 0}
+ - target: {fileID: 4894033903586032, guid: 8b83134143223104c9bc3865a565cab3, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4894033903586032, guid: 8b83134143223104c9bc3865a565cab3, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4894033903586032, guid: 8b83134143223104c9bc3865a565cab3, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4894033903586032, guid: 8b83134143223104c9bc3865a565cab3, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4894033903586032, guid: 8b83134143223104c9bc3865a565cab3, type: 2}
+ propertyPath: m_RootOrder
+ value: 8
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8b83134143223104c9bc3865a565cab3, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!4 &1332690819 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4894033903586032, guid: 8b83134143223104c9bc3865a565cab3,
+ type: 2}
+ m_PrefabInternal: {fileID: 1332690818}
+--- !u!1001 &1432196622
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 4538655477204070, guid: e9e54ebd208487c409e32502a50a1f20, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0.25300002
+ objectReference: {fileID: 0}
+ - target: {fileID: 4538655477204070, guid: e9e54ebd208487c409e32502a50a1f20, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: -0.235
+ objectReference: {fileID: 0}
+ - target: {fileID: 4538655477204070, guid: e9e54ebd208487c409e32502a50a1f20, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.297
+ objectReference: {fileID: 0}
+ - target: {fileID: 4538655477204070, guid: e9e54ebd208487c409e32502a50a1f20, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4538655477204070, guid: e9e54ebd208487c409e32502a50a1f20, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4538655477204070, guid: e9e54ebd208487c409e32502a50a1f20, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4538655477204070, guid: e9e54ebd208487c409e32502a50a1f20, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4538655477204070, guid: e9e54ebd208487c409e32502a50a1f20, type: 2}
+ propertyPath: m_RootOrder
+ value: 15
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: e9e54ebd208487c409e32502a50a1f20, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!1 &1437088830
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1437088831}
+ - component: {fileID: 1437088833}
+ - component: {fileID: 1437088832}
+ m_Layer: 0
+ m_Name: ReceiverExample
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1437088831
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1437088830}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.492, y: 0.197, z: 0.494}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1569347355}
+ m_Father: {fileID: 561651893}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1437088832
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1437088830}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: afb3d203ea3ffed4dba2fddd2771cc64, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Button: {fileID: 1093241601}
+ Focus: 0
+ Down: 0
+ Disabled: 0
+ Clicked: 0
+--- !u!114 &1437088833
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1437088830}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f45de32ad1e8334a8bd1ca76cb7dd83, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Interactable: {fileID: 1093241601}
+ InteractableSearchScope: 0
+ Events:
+ - Name: CustomEvent
+ Event:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ ClassName: CustomInteractablesReceiver
+ Settings: []
+ HideUnityEvents: 1
+--- !u!4 &1441615695 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4899954742063566, guid: 02c524b22137b5449904f5395141cc73,
+ type: 2}
+ m_PrefabInternal: {fileID: 905760910}
+--- !u!4 &1489297081 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4249060311757736, guid: 40da8a1b3b26ba743b892d890b95a9f9,
+ type: 2}
+ m_PrefabInternal: {fileID: 548018554}
+--- !u!1 &1510982888
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1510982889}
+ - component: {fileID: 1510982893}
+ - component: {fileID: 1510982892}
+ - component: {fileID: 1510982891}
+ m_Layer: 0
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1510982889
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1510982888}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.01}
+ m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
+ m_Children:
+ - {fileID: 2049789948}
+ m_Father: {fileID: 615548497}
+ 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: 500, y: 750}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1510982891
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1510982888}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &1510982892
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1510982888}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, 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 &1510982893
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1510982888}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 2
+ m_Camera: {fileID: 1950218118}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!1 &1569347354
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1569347355}
+ - component: {fileID: 1569347357}
+ - component: {fileID: 1569347356}
+ m_Layer: 0
+ m_Name: Output
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1569347355
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1569347354}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.335, y: 0.033, z: 0}
+ m_LocalScale: {x: 0.005, y: 0.005, z: 0.005}
+ m_Children: []
+ m_Father: {fileID: 1437088831}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!102 &1569347356
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1569347354}
+ m_Text: Button Status
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 1
+ m_TabSize: 4
+ m_FontSize: 48
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!23 &1569347357
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1569347354}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!1001 &1582242360
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 4607159678781596, guid: d5e0e8cc740eb134789fd1f6bb5bb80a, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: -0.157
+ objectReference: {fileID: 0}
+ - target: {fileID: 4607159678781596, guid: d5e0e8cc740eb134789fd1f6bb5bb80a, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.01
+ objectReference: {fileID: 0}
+ - target: {fileID: 4607159678781596, guid: d5e0e8cc740eb134789fd1f6bb5bb80a, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.48480004
+ objectReference: {fileID: 0}
+ - target: {fileID: 4607159678781596, guid: d5e0e8cc740eb134789fd1f6bb5bb80a, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4607159678781596, guid: d5e0e8cc740eb134789fd1f6bb5bb80a, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4607159678781596, guid: d5e0e8cc740eb134789fd1f6bb5bb80a, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4607159678781596, guid: d5e0e8cc740eb134789fd1f6bb5bb80a, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4607159678781596, guid: d5e0e8cc740eb134789fd1f6bb5bb80a, type: 2}
+ propertyPath: m_RootOrder
+ value: 4
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: d5e0e8cc740eb134789fd1f6bb5bb80a, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!1 &1606989262
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1606989263}
+ - component: {fileID: 1606989265}
+ - component: {fileID: 1606989264}
+ m_Layer: 0
+ m_Name: Description
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1606989263
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1606989262}
+ 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: 2049789948}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 590}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1606989264
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1606989262}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+ Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+ m_text: "Interactables Examples\n\nThe Interactable is a base component
+ for building interactive content, like buttons and UI controls, with feedback
+ based on interactive states. Interactables can have voice commands added to them
+ and offers a deep theming system for all types of sensory feedback.\n\n\u2022Button
+ \u2013 a standard UI button with basic feedback\n\u2022Toggle
+ Button \u2013 an advanced button with multiple dimensions\n\u2022Animated
+ Button \u2013 a button that uses an Animator theme for feedback\n\u2022Simple
+ Button \u2013 a bare bones button with a mesh and label using the Default theme\n\u2022Holographic
+ Button \u2013 an example of shell like buttons with a speech prompt\n\u2022Toggle
+ Switch \u2013 a toggle switch UI control example\n\u2022Checkbox
+ - an example of a checkbox toggle control\r\n\u2022Radial
+ and Radial Set - an example of a button collection or tab system where only one
+ button can be toggled at a time\r\n"
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_outlineColor:
+ serializedVersion: 2
+ rgba: 4278190080
+ m_fontSize: 22
+ m_fontSizeBase: 22
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_textAlignment: 257
+ m_isAlignmentEnumConverted: 1
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_firstOverflowCharacterIndex: -1
+ m_linkedTextComponent: {fileID: 0}
+ m_isLinkedTextComponent: 0
+ m_isTextTruncated: 0
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_ignoreRectMaskCulling: 0
+ m_ignoreCulling: 1
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_firstVisibleCharacter: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
+ m_textInfo:
+ textComponent: {fileID: 1606989264}
+ characterCount: 855
+ spriteCount: 0
+ spaceCount: 146
+ wordCount: 138
+ linkCount: 0
+ lineCount: 21
+ pageCount: 1
+ materialCount: 1
+ m_havePropertiesChanged: 0
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_spriteAnimator: {fileID: 0}
+ m_isInputParsingRequired: 0
+ m_inputSource: 0
+ m_hasFontAssetChanged: 0
+ m_subTextObjects:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &1606989265
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1606989262}
+ m_CullTransparentMesh: 0
+--- !u!1001 &1627996128
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 79737368}
+ m_Modifications:
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.07000001
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: abb2df850d68f894d830c95c299cf10f, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!1001 &1663320975
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 4897534128531766, guid: 0ceaaf28e492a284fbf57901d04075ad, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0.18600002
+ objectReference: {fileID: 0}
+ - target: {fileID: 4897534128531766, guid: 0ceaaf28e492a284fbf57901d04075ad, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: -0.318968
+ objectReference: {fileID: 0}
+ - target: {fileID: 4897534128531766, guid: 0ceaaf28e492a284fbf57901d04075ad, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.26
+ objectReference: {fileID: 0}
+ - target: {fileID: 4897534128531766, guid: 0ceaaf28e492a284fbf57901d04075ad, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4897534128531766, guid: 0ceaaf28e492a284fbf57901d04075ad, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4897534128531766, guid: 0ceaaf28e492a284fbf57901d04075ad, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4897534128531766, guid: 0ceaaf28e492a284fbf57901d04075ad, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4897534128531766, guid: 0ceaaf28e492a284fbf57901d04075ad, type: 2}
+ propertyPath: m_RootOrder
+ value: 14
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 0ceaaf28e492a284fbf57901d04075ad, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!1001 &1672550135
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 561651893}
+ m_Modifications:
+ - target: {fileID: 4852819729683114, guid: 4b1ffbebacd36694ebea9fb6d437c68f, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: -0.409
+ objectReference: {fileID: 0}
+ - target: {fileID: 4852819729683114, guid: 4b1ffbebacd36694ebea9fb6d437c68f, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.076
+ objectReference: {fileID: 0}
+ - target: {fileID: 4852819729683114, guid: 4b1ffbebacd36694ebea9fb6d437c68f, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0.488
+ objectReference: {fileID: 0}
+ - target: {fileID: 4852819729683114, guid: 4b1ffbebacd36694ebea9fb6d437c68f, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4852819729683114, guid: 4b1ffbebacd36694ebea9fb6d437c68f, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4852819729683114, guid: 4b1ffbebacd36694ebea9fb6d437c68f, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4852819729683114, guid: 4b1ffbebacd36694ebea9fb6d437c68f, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4852819729683114, guid: 4b1ffbebacd36694ebea9fb6d437c68f, type: 2}
+ propertyPath: m_RootOrder
+ value: 7
+ objectReference: {fileID: 0}
+ - target: {fileID: 33411799682539724, guid: 4b1ffbebacd36694ebea9fb6d437c68f,
+ type: 2}
+ propertyPath: m_Mesh
+ value:
+ objectReference: {fileID: 0}
+ - target: {fileID: 114293819691004426, guid: 4b1ffbebacd36694ebea9fb6d437c68f,
+ type: 2}
+ propertyPath: m_havePropertiesChanged
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114293819691004426, guid: 4b1ffbebacd36694ebea9fb6d437c68f,
+ type: 2}
+ propertyPath: m_isInputParsingRequired
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114856665817931228, guid: 4b1ffbebacd36694ebea9fb6d437c68f,
+ type: 2}
+ propertyPath: InputActionId
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114856665817931228, guid: 4b1ffbebacd36694ebea9fb6d437c68f,
+ type: 2}
+ propertyPath: RequiresGaze
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114856665817931228, guid: 4b1ffbebacd36694ebea9fb6d437c68f,
+ type: 2}
+ propertyPath: IsGlobal
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 4b1ffbebacd36694ebea9fb6d437c68f, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!4 &1672550136 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4852819729683114, guid: 4b1ffbebacd36694ebea9fb6d437c68f,
+ type: 2}
+ m_PrefabInternal: {fileID: 1672550135}
+--- !u!1001 &1688406053
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 1190688397}
+ m_Modifications:
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalPosition.y
+ value: 0.07000001
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: ce4801a284bc5c3488c631dcdba665df, type: 2}
+ m_IsPrefabAsset: 0
+--- !u!4 &1688406054 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4938574377845388, guid: ce4801a284bc5c3488c631dcdba665df,
+ type: 2}
+ m_PrefabInternal: {fileID: 1688406053}
+--- !u!4 &1870333360 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4896987550614830, guid: 50eb8d97f29f335409ec2df393ed6cc5,
+ type: 2}
+ m_PrefabInternal: {fileID: 1324622404}
+--- !u!114 &1885692589 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 114856665817931228, guid: 4b1ffbebacd36694ebea9fb6d437c68f,
+ type: 2}
+ m_PrefabInternal: {fileID: 1672550135}
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+--- !u!1 &1950218114
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1950218115}
+ - component: {fileID: 1950218118}
+ m_Layer: 0
+ m_Name: UIRaycastCamera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1950218115
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1950218114}
+ 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: 2124803460}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &1950218118
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1950218114}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 3
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 1
+ orthographic size: 0.5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 1
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 0
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 0
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!1 &1954408010
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1954408011}
+ - component: {fileID: 1954408013}
+ - component: {fileID: 1954408012}
+ m_Layer: 0
+ m_Name: Output
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1954408011
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1954408010}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.335, y: 0.033, z: 0}
+ m_LocalScale: {x: 0.005, y: 0.005, z: 0.005}
+ m_Children: []
+ m_Father: {fileID: 469507212}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!102 &1954408012
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1954408010}
+ m_Text: Toggle Status
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 1
+ m_TabSize: 4
+ m_FontSize: 48
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!23 &1954408013
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1954408010}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!4 &1992958651 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4897534128531766, guid: 0ceaaf28e492a284fbf57901d04075ad,
+ type: 2}
+ m_PrefabInternal: {fileID: 1663320975}
+--- !u!1 &2049789947
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2049789948}
+ - component: {fileID: 2049789950}
+ - component: {fileID: 2049789949}
+ m_Layer: 0
+ m_Name: TextPanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2049789948
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2049789947}
+ 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: 1259682758}
+ - {fileID: 1606989263}
+ m_Father: {fileID: 1510982889}
+ 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 &2049789949
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2049789947}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Padding:
+ m_Left: 20
+ m_Right: 20
+ m_Top: 20
+ m_Bottom: 20
+ m_ChildAlignment: 1
+ m_Spacing: 50
+ m_ChildForceExpandWidth: 1
+ m_ChildForceExpandHeight: 0
+ m_ChildControlWidth: 1
+ m_ChildControlHeight: 0
+--- !u!222 &2049789950
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2049789947}
+ m_CullTransparentMesh: 0
+--- !u!1 &2064343710
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2064343711}
+ m_Layer: 0
+ m_Name: MixedRealityPlayspace
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2064343711
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2064343710}
+ 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: 2124803460}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &2077684431 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4165280830115576, guid: abb2df850d68f894d830c95c299cf10f,
+ type: 2}
+ m_PrefabInternal: {fileID: 1627996128}
+--- !u!1 &2124803459
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2124803460}
+ - component: {fileID: 2124803465}
+ - component: {fileID: 2124803464}
+ - component: {fileID: 2124803463}
+ - component: {fileID: 2124803461}
+ - component: {fileID: 2124803467}
+ - component: {fileID: 2124803466}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2124803460
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2124803459}
+ 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: 1950218115}
+ m_Father: {fileID: 2064343711}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &2124803461
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2124803459}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ maxGazeCollisionDistance: 10
+ raycastLayerMasks:
+ - serializedVersion: 2
+ m_Bits: 4294967291
+ stabilizer:
+ storedStabilitySamples: 60
+ gazeTransform: {fileID: 0}
+ minHeadVelocityThreshold: 0.5
+ maxHeadVelocityThreshold: 2
+--- !u!81 &2124803463
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2124803459}
+ m_Enabled: 1
+--- !u!124 &2124803464
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2124803459}
+ m_Enabled: 1
+--- !u!20 &2124803465
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2124803459}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
+ m_projectionMatrixMode: 1
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!114 &2124803466
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2124803459}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &2124803467
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2124803459}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!1 &2125049000
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2125049001}
+ - component: {fileID: 2125049004}
+ - component: {fileID: 2125049003}
+ - component: {fileID: 2125049002}
+ m_Layer: 0
+ m_Name: FocusVisual
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &2125049001
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2125049000}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.287, y: 0.147, z: 0.4848}
+ m_LocalScale: {x: 0.025, y: 0.025, z: 0.025}
+ m_Children: []
+ m_Father: {fileID: 561651893}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!135 &2125049002
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2125049000}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &2125049003
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2125049000}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 47f3c5e1cb6142ba9697cd4c86d74321, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &2125049004
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 2125049000}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes/InteractablesGallery.unity.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes/InteractablesGallery.unity.meta
new file mode 100644
index 00000000000..c7b1ad436b2
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes/InteractablesGallery.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3cfba91e4f501d048bd6014bb47c4e4c
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scripts.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scripts.meta
new file mode 100644
index 00000000000..570ed500996
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 48763110db2106140b1896b7cbf0013c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scripts/CustomInteractablesReceiver.cs b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scripts/CustomInteractablesReceiver.cs
new file mode 100644
index 00000000000..62c317e2914
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scripts/CustomInteractablesReceiver.cs
@@ -0,0 +1,191 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// Example of building a custom receiver that can be loaded as part of the events on the Interactable or
+ /// in InteractableReceiverList or InteractableReceiver
+ ///
+ /// Extend ReceiverBaseMonoBehavior to build external event components
+ ///
+ public class CustomInteractablesReceiver : ReceiverBase
+ {
+ private State lastState;
+ private string statusString = "State: %state%";
+ private string clickString = "Clicked!";
+ private string voiceString = "VoiceCommand: %voiceCommand%";
+ private string outputString;
+
+ private string lastVoiceCommand = "";
+
+ private float clickTime = 2;
+ private Coroutine showClicked;
+ private Coroutine showVoice;
+ private int clickCount = 0;
+
+ public CustomInteractablesReceiver(UnityEvent ev) : base(ev)
+ {
+ Name = "CustomEvent";
+ HideUnityEvents = true; // hides Unity events in the receiver - meant to be code only
+ }
+
+ ///
+ /// find a textMesh to output button status to
+ ///
+ private void SetOutput()
+ {
+ if (Host != null)
+ {
+ TextMesh mesh = Host.GetComponentInChildren();
+
+ if (mesh != null)
+ {
+ outputString = statusString.Replace("%state%", lastState.Name);
+
+ if(showClicked != null)
+ {
+ outputString += "\n" + clickString + "(" + clickCount + ")";
+ }
+
+ if (showVoice != null)
+ {
+ outputString += "\n" + voiceString.Replace("%voiceCommand%", lastVoiceCommand);
+ }
+
+ mesh.text = outputString;
+ }
+ }
+ }
+
+ ///
+ /// allow the info to remove click info if a click event has expired
+ ///
+ ///
+ ///
+ private IEnumerator ClickTimer(float time)
+ {
+ yield return new WaitForSeconds(time);
+ showClicked = null;
+ }
+
+ ///
+ /// allow the info to remove voice command info and it expires
+ ///
+ ///
+ ///
+ private IEnumerator VoiceTimer(float time)
+ {
+ yield return new WaitForSeconds(time);
+ showVoice = null;
+ }
+
+ ///
+ /// Called on update, check to see if the state has changed sense the last call
+ ///
+ ///
+ ///
+ public override void OnUpdate(InteractableStates state, Interactable source)
+ {
+ if (state.CurrentState() != lastState)
+ {
+ // the state has changed, do something new
+ /*
+ bool hasDown = state.GetState(InteractableStates.InteractableStateEnum.Pressed).Value > 0;
+
+ bool focused = state.GetState(InteractableStates.InteractableStateEnum.Focus).Value > 0;
+
+ bool isDisabled = state.GetState(InteractableStates.InteractableStateEnum.Disabled).Value > 0;
+
+ bool hasInteractive = state.GetState(InteractableStates.InteractableStateEnum.Interactive).Value > 0;
+
+ bool hasObservation = state.GetState(InteractableStates.InteractableStateEnum.Observation).Value > 0;
+
+ bool hasObservationTargeted = state.GetState(InteractableStates.InteractableStateEnum.ObservationTargeted).Value > 0;
+
+ bool isTargeted = state.GetState(InteractableStates.InteractableStateEnum.Targeted).Value > 0;
+
+ bool isToggled = state.GetState(InteractableStates.InteractableStateEnum.Toggled).Value > 0;
+
+ bool isVisited = state.GetState(InteractableStates.InteractableStateEnum.Visited).Value > 0;
+
+ bool isDefault = state.GetState(InteractableStates.InteractableStateEnum.Default).Value > 0;
+
+ bool hasGesture = state.GetState(InteractableStates.InteractableStateEnum.Gesture).Value > 0;
+
+ bool hasGestureMax = state.GetState(InteractableStates.InteractableStateEnum.GestureMax).Value > 0;
+
+ bool hasCollistion = state.GetState(InteractableStates.InteractableStateEnum.Collision).Value > 0;
+
+ bool hasCustom = state.GetState(InteractableStates.InteractableStateEnum.Custom).Value > 0;
+
+ or:
+
+ bool hasFocus = source.HasFocus;
+ bool hasPress = source.HasPress;
+ */
+
+ lastState = state.CurrentState();
+ SetOutput();
+ }
+ }
+
+ ///
+ /// click happened
+ ///
+ ///
+ ///
+ ///
+ public override void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null)
+ {
+ base.OnClick(state, source);
+ if (Host != null)
+ {
+ if(showClicked != null)
+ {
+ Host.StopCoroutine(showClicked);
+ showClicked = null;
+ }
+
+ showClicked = Host.StartCoroutine(ClickTimer(clickTime));
+ }
+
+ clickCount++;
+ SetOutput();
+ }
+
+ ///
+ /// voice command called
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public override void OnVoiceCommand(InteractableStates state, Interactable source, string command, int index = 0, int length = 1)
+ {
+ base.OnVoiceCommand(state, source, command, index, length);
+ lastVoiceCommand = command;
+
+ if (Host != null)
+ {
+ if (showVoice != null)
+ {
+ Host.StopCoroutine(showVoice);
+ showVoice = null;
+ }
+
+ showVoice = Host.StartCoroutine(VoiceTimer(clickTime));
+ }
+
+ SetOutput();
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scripts/CustomInteractablesReceiver.cs.meta b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scripts/CustomInteractablesReceiver.cs.meta
new file mode 100644
index 00000000000..c4a981f00d7
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scripts/CustomInteractablesReceiver.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 447d232efa5d5b14482fc84c26a15a22
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities.meta
new file mode 100644
index 00000000000..d9544a72225
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 305d760fd8db4d544a6feeda60d23162
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields.meta
new file mode 100644
index 00000000000..b5ff4e323b2
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3327b331c8f332540b3dbaf0bfc1bee4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors.meta
new file mode 100644
index 00000000000..9cd3dbd6fc0
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: de377a3dabf7a6d419752803454a666b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/InspectorFieldsExampleInspector.cs b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/InspectorFieldsExampleInspector.cs
new file mode 100644
index 00000000000..06e109f34a2
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/InspectorFieldsExampleInspector.cs
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Inspectors.Utilities;
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.Examples.Demos.Utilities.InspectorFields.Inspectors
+{
+ [CustomEditor(typeof(InspectorFieldsExample))]
+ public class InspectorFieldsExampleInspector : Editor
+ {
+ private SerializedProperty settings;
+ private InspectorFieldsExample example;
+
+ private void OnEnable()
+ {
+ example = (InspectorFieldsExample)target;
+ if (example.Settings == null || example.Settings.Count < 1)
+ {
+ // copy the fields from the class to the virtual list of settings
+ example.Settings = InspectorGenericFields.GetSettings(example);
+ }
+
+ settings = serializedObject.FindProperty("Settings");
+ }
+
+ public override void OnInspectorGUI()
+ {
+ serializedObject.Update();
+
+ // display the fields virtually as a custom inspector
+ for (int i = 0; i < settings.arraySize; i++)
+ {
+ SerializedProperty prop = settings.GetArrayElementAtIndex(i);
+ InspectorFieldsUtility.DisplayPropertyField(prop);
+ }
+
+ serializedObject.ApplyModifiedProperties();
+
+ // to apply during runtime - only needed for monobehaviors
+ InspectorGenericFields.LoadSettings(example, example.Settings);
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/InspectorFieldsExampleInspector.cs.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/InspectorFieldsExampleInspector.cs.meta
new file mode 100644
index 00000000000..28eeb03ec60
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/InspectorFieldsExampleInspector.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 31c1a6c0aadf3b747b714e21df6ab7a7
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef
new file mode 100644
index 00000000000..c61c1bb503c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef
@@ -0,0 +1,14 @@
+{
+ "name": "MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors",
+ "references": [
+ "Microsoft.MixedReality.Toolkit.Core.Inspectors",
+ "Microsoft.MixedReality.Toolkit",
+ "MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields"
+ ],
+ "optionalUnityReferences": [],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false
+}
\ No newline at end of file
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef.meta
new file mode 100644
index 00000000000..842794d8936
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3c167786753c9d84ba3cd74489966b48
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.asmdef b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.asmdef
new file mode 100644
index 00000000000..c4fa7b54159
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.asmdef
@@ -0,0 +1,10 @@
+{
+ "name": "MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields",
+ "references": [
+ "Microsoft.MixedReality.Toolkit"
+ ],
+ "optionalUnityReferences": [],
+ "includePlatforms": [],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false
+}
\ No newline at end of file
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.asmdef.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.asmdef.meta
new file mode 100644
index 00000000000..8f0eb4b9ff9
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d760c22fff823d74da4531defcc95250
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scenes.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scenes.meta
new file mode 100644
index 00000000000..79efaecb554
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 62cba203e69a6524caa064c19d325bcc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scenes/InspectorFieldsGallery.unity b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scenes/InspectorFieldsGallery.unity
new file mode 100644
index 00000000000..4e7c387be8a
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scenes/InspectorFieldsGallery.unity
@@ -0,0 +1,1523 @@
+%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: 9
+ 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: 1428268608}
+ m_IndirectSpecularColor: {r: 0.44657844, g: 0.49641222, b: 0.57481694, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !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: 1
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 10
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 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_ShowResolutionOverlay: 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!1 &282983768
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1537677706907048, guid: a900c08743a94c328074df8bbe3eb63c,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 282983769}
+ - component: {fileID: 282983770}
+ m_Layer: 0
+ m_Name: MRTK_Logo
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &282983769
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4821338419154824, guid: a900c08743a94c328074df8bbe3eb63c,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 282983768}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.094, y: 0.317, z: -0.019582}
+ m_LocalScale: {x: 0.025, y: 0.025, z: 0.025}
+ m_Children: []
+ m_Father: {fileID: 1677932525}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!212 &282983770
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 212217607194078942, guid: a900c08743a94c328074df8bbe3eb63c,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 282983768}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 10
+ m_Sprite: {fileID: 21300000, guid: 84643a20fa6b4fa7969ef84ad2e40992, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 5.12, y: 2.24}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+--- !u!1 &312509569
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 312509570}
+ - component: {fileID: 312509574}
+ - component: {fileID: 312509573}
+ - component: {fileID: 312509572}
+ - component: {fileID: 312509571}
+ m_Layer: 0
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &312509570
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 312509569}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.01}
+ m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
+ m_Children:
+ - {fileID: 1877041863}
+ m_Father: {fileID: 1677932525}
+ 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: 500, y: 750}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &312509571
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 312509569}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &312509572
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 312509569}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &312509573
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 312509569}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, 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 &312509574
+Canvas:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 312509569}
+ 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: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!1 &409268359
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 409268360}
+ - component: {fileID: 409268363}
+ - component: {fileID: 409268362}
+ - component: {fileID: 409268361}
+ m_Layer: 0
+ m_Name: UIRaycastCamera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &409268360
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 409268359}
+ 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: 1428889684}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &409268361
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 409268359}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &409268362
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 409268359}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!20 &409268363
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 409268359}
+ m_Enabled: 0
+ serializedVersion: 2
+ m_ClearFlags: 3
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 1
+ orthographic size: 0.5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 1
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 0
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 0
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!1 &817150417
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1098357601187676, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 817150418}
+ - component: {fileID: 817150420}
+ - component: {fileID: 817150419}
+ m_Layer: 0
+ m_Name: Break
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &817150418
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4841041826402756, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 817150417}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.266, z: -0.004}
+ m_LocalScale: {x: 0.49, y: 0.003072646, z: 0.01}
+ m_Children: []
+ m_Father: {fileID: 1677932525}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &817150419
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 23244390913877232, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 817150417}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: d5334c45caee46be937b095a1e977dc6, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &817150420
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 33681390382101906, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 817150417}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1229001241
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1229001242}
+ - component: {fileID: 1229001243}
+ m_Layer: 0
+ m_Name: InspectorExample
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1229001242
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1229001241}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.204, y: 1.937413, z: 1}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1250210447}
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1229001243
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1229001241}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: caa691d22bb60a141b6d4c76ce125f97, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ ComponentName: My Name
+ Enabled: 0
+ ComponentOption: Option 3
+ ComponentIndex: 2
+ Settings:
+ - Type: 2
+ Label: Component Name
+ Name: ComponentName
+ Tooltip: The name of the component
+ IntValue: 0
+ StringValue: My Name
+ FloatValue: 0
+ BoolValue: 0
+ GameObjectValue: {fileID: 0}
+ ScriptableObjectValue: {fileID: 0}
+ ObjectValue: {fileID: 0}
+ MaterialValue: {fileID: 0}
+ TextureValue: {fileID: 0}
+ ColorValue: {r: 0, g: 0, b: 0, a: 0}
+ Vector2Value: {x: 0, y: 0}
+ Vector3Value: {x: 0, y: 0, z: 0}
+ Vector4Value: {x: 0, y: 0, z: 0, w: 0}
+ CurveValue:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ AudioClipValue: {fileID: 0}
+ QuaternionValue: {x: 0, y: 0, z: 0, w: 0}
+ EventValue:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Options: []
+ - Type: 3
+ Label: Enabled
+ Name: Enabled
+ Tooltip: Is the component enabled?
+ IntValue: 0
+ StringValue:
+ FloatValue: 0
+ BoolValue: 0
+ GameObjectValue: {fileID: 0}
+ ScriptableObjectValue: {fileID: 0}
+ ObjectValue: {fileID: 0}
+ MaterialValue: {fileID: 0}
+ TextureValue: {fileID: 0}
+ ColorValue: {r: 0, g: 0, b: 0, a: 0}
+ Vector2Value: {x: 0, y: 0}
+ Vector3Value: {x: 0, y: 0, z: 0}
+ Vector4Value: {x: 0, y: 0, z: 0, w: 0}
+ CurveValue:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ AudioClipValue: {fileID: 0}
+ QuaternionValue: {x: 0, y: 0, z: 0, w: 0}
+ EventValue:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Options: []
+ - Type: 6
+ Label: Component Option
+ Name: ComponentOption
+ Tooltip: Select an option
+ IntValue: 2
+ StringValue: Option 3
+ FloatValue: 0
+ BoolValue: 0
+ GameObjectValue: {fileID: 0}
+ ScriptableObjectValue: {fileID: 0}
+ ObjectValue: {fileID: 0}
+ MaterialValue: {fileID: 0}
+ TextureValue: {fileID: 0}
+ ColorValue: {r: 0, g: 0, b: 0, a: 0}
+ Vector2Value: {x: 0, y: 0}
+ Vector3Value: {x: 0, y: 0, z: 0}
+ Vector4Value: {x: 0, y: 0, z: 0, w: 0}
+ CurveValue:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ AudioClipValue: {fileID: 0}
+ QuaternionValue: {x: 0, y: 0, z: 0, w: 0}
+ EventValue:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Options:
+ - Option 1
+ - Option 2
+ - Option 3
+ - Option 4
+ - Type: 5
+ Label: Component Index
+ Name: ComponentIndex
+ Tooltip: A index value of the component
+ IntValue: 2
+ StringValue:
+ FloatValue: 0
+ BoolValue: 0
+ GameObjectValue: {fileID: 0}
+ ScriptableObjectValue: {fileID: 0}
+ ObjectValue: {fileID: 0}
+ MaterialValue: {fileID: 0}
+ TextureValue: {fileID: 0}
+ ColorValue: {r: 0, g: 0, b: 0, a: 0}
+ Vector2Value: {x: 0, y: 0}
+ Vector3Value: {x: 0, y: 0, z: 0}
+ Vector4Value: {x: 0, y: 0, z: 0, w: 0}
+ CurveValue:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ AudioClipValue: {fileID: 0}
+ QuaternionValue: {x: 0, y: 0, z: 0, w: 0}
+ EventValue:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Options:
+ - Index 0
+ - Index 1
+ - Index 2
+ - Index 3
+ - Index 4
+--- !u!1 &1250210446
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1250210447}
+ - component: {fileID: 1250210450}
+ - component: {fileID: 1250210449}
+ - component: {fileID: 1250210448}
+ m_Layer: 0
+ m_Name: Placeholder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1250210447
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1250210446}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
+ m_Children: []
+ m_Father: {fileID: 1229001242}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &1250210448
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1250210446}
+ 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 &1250210449
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1250210446}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &1250210450
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1250210446}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1386039202
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1386039203}
+ m_Layer: 0
+ m_Name: MixedRealityPlayspace
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1386039203
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1386039202}
+ 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: 1428889684}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1411847873
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1617302903321292, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1411847874}
+ - component: {fileID: 1411847878}
+ - component: {fileID: 1411847877}
+ - component: {fileID: 1411847876}
+ - component: {fileID: 1411847875}
+ m_Layer: 0
+ m_Name: Backpanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1411847874
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4121299678842376, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1411847873}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.5, y: 0.75, z: 0.01}
+ m_Children: []
+ m_Father: {fileID: 1677932525}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!54 &1411847875
+Rigidbody:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 54445563858238718, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1411847873}
+ serializedVersion: 2
+ m_Mass: 100
+ m_Drag: 0
+ m_AngularDrag: 0.05
+ m_UseGravity: 0
+ m_IsKinematic: 1
+ m_Interpolate: 0
+ m_Constraints: 126
+ m_CollisionDetection: 0
+--- !u!23 &1411847876
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 23162781178432390, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1411847873}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: f40914b49f8741e39df5b08d3db15497, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!65 &1411847877
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 65610606690005306, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1411847873}
+ 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!33 &1411847878
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 33376072416181890, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1411847873}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1428268607
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1428268609}
+ - component: {fileID: 1428268608}
+ 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 &1428268608
+Light:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1428268607}
+ 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: 0
+ 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 &1428268609
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1428268607}
+ 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: 1
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &1428889683
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1428889684}
+ - component: {fileID: 1428889689}
+ - component: {fileID: 1428889688}
+ - component: {fileID: 1428889687}
+ - component: {fileID: 1428889686}
+ - component: {fileID: 1428889685}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1428889684
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1428889683}
+ 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: 409268360}
+ m_Father: {fileID: 1386039203}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1428889685
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1428889683}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ cursorPrefab: {fileID: 1000012072213228, guid: 5b3e2856904e43c680f84f326861032a,
+ type: 2}
+ maxGazeCollisionDistance: 10
+ raycastLayerMasks:
+ - serializedVersion: 2
+ m_Bits: 4294967291
+ stabilizer:
+ storedStabilitySamples: 60
+ gazeTransform: {fileID: 0}
+ minHeadVelocityThreshold: 0.5
+ maxHeadVelocityThreshold: 2
+ debugDrawRay: 0
+--- !u!114 &1428889686
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1428889683}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6d8ddcf767354d5f90704bb40ddec60a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ pointingExtent: 10
+ uiRaycastCamera: {fileID: 409268363}
+ pointingRaycastLayerMasks:
+ - serializedVersion: 2
+ m_Bits: 4294967291
+ debugDrawPointingRays: 0
+ debugDrawPointingRayColors: []
+--- !u!81 &1428889687
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1428889683}
+ m_Enabled: 1
+--- !u!124 &1428889688
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1428889683}
+ m_Enabled: 1
+--- !u!20 &1428889689
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1428889683}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!1 &1485507611
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1485507613}
+ - component: {fileID: 1485507612}
+ m_Layer: 0
+ m_Name: MixedRealityManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1485507612
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1485507611}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ activeProfile: {fileID: 11400000, guid: 31a611a779d3499e8e35f1a2018ca841, type: 2}
+--- !u!4 &1485507613
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1485507611}
+ 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: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1553718425
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1553718426}
+ - component: {fileID: 1553718428}
+ - component: {fileID: 1553718427}
+ m_Layer: 0
+ m_Name: Description
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1553718426
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1553718425}
+ 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: 1877041863}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 590}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1553718427
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1553718425}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+ Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+ m_text: "Inspector Fields Example\n\nUse InspectorFields attributes in
+ a class to make it easier to create custom inspectors\r or for building complex
+ inspectors that need to be customized or the need to overcome lack of polymorphism
+ support\r.\n\nThey provide a way to create one inspector for multiple classes\r\n\nExample:
+ Create a monobehavior or scriptable object with a custom inspector.\r\n\u2022The
+ functionality or settings can be changed by assigning a custom script to the object\r\n\n\u2022Use
+ InspectorFields to render the custom properties inside the custom script in the
+ inspector\r\n\n\u2022When the app launches, copy the properties
+ to the new instance of the script\r\n\nAn example of this can be found
+ in Interactables Receivers.\r\n\u2022Each Receiver is a custom class
+ that renders their properties in the Interactables custom inspector\n"
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_outlineColor:
+ serializedVersion: 2
+ rgba: 4278190080
+ m_fontSize: 22
+ m_fontSizeBase: 22
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_textAlignment: 257
+ m_isAlignmentEnumConverted: 1
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_firstOverflowCharacterIndex: -1
+ m_linkedTextComponent: {fileID: 0}
+ m_isLinkedTextComponent: 0
+ m_isTextTruncated: 0
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_ignoreRectMaskCulling: 0
+ m_ignoreCulling: 1
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_firstVisibleCharacter: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
+ m_textInfo:
+ textComponent: {fileID: 1553718427}
+ characterCount: 807
+ spriteCount: 0
+ spaceCount: 132
+ wordCount: 126
+ linkCount: 0
+ lineCount: 23
+ pageCount: 1
+ materialCount: 1
+ m_havePropertiesChanged: 0
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_spriteAnimator: {fileID: 0}
+ m_isInputParsingRequired: 0
+ m_inputSource: 0
+ m_hasFontAssetChanged: 0
+ m_subTextObjects:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &1553718428
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1553718425}
+--- !u!1 &1665462085
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1665462086}
+ - component: {fileID: 1665462088}
+ - component: {fileID: 1665462087}
+ m_Layer: 0
+ m_Name: Header
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1665462086
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1665462085}
+ 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: 1877041863}
+ 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: 64}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!114 &1665462087
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1665462085}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+ Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+ m_text: 'Works On
+
+ All Platforms'
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_outlineColor:
+ serializedVersion: 2
+ rgba: 4278190080
+ m_fontSize: 24
+ m_fontSizeBase: 24
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_textAlignment: 260
+ m_isAlignmentEnumConverted: 1
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_firstOverflowCharacterIndex: -1
+ m_linkedTextComponent: {fileID: 0}
+ m_isLinkedTextComponent: 0
+ m_isTextTruncated: 0
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_ignoreRectMaskCulling: 0
+ m_ignoreCulling: 1
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_firstVisibleCharacter: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: -17.611118}
+ m_textInfo:
+ textComponent: {fileID: 1665462087}
+ characterCount: 22
+ spriteCount: 0
+ spaceCount: 3
+ wordCount: 4
+ linkCount: 0
+ lineCount: 2
+ pageCount: 1
+ materialCount: 1
+ m_havePropertiesChanged: 0
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_spriteAnimator: {fileID: 0}
+ m_isInputParsingRequired: 0
+ m_inputSource: 0
+ m_hasFontAssetChanged: 0
+ m_subTextObjects:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &1665462088
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1665462085}
+--- !u!1 &1677932524
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 1567772222813912, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1677932525}
+ m_Layer: 0
+ m_Name: SceneDescriptionPanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1677932525
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 4379023372676368, guid: da6cb4b5656af404ca2740df7f360792,
+ type: 2}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1677932524}
+ m_LocalRotation: {x: -0, y: 0.40190813, z: -0, w: 0.91568005}
+ m_LocalPosition: {x: 1.401, y: 1.865, z: 1.36}
+ m_LocalScale: {x: 2.0953145, y: 2.0953145, z: 2.0953145}
+ m_Children:
+ - {fileID: 817150418}
+ - {fileID: 1411847874}
+ - {fileID: 282983769}
+ - {fileID: 312509570}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 47.395, z: 0}
+--- !u!1 &1877041862
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 1877041863}
+ - component: {fileID: 1877041865}
+ - component: {fileID: 1877041864}
+ m_Layer: 0
+ m_Name: TextPanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1877041863
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1877041862}
+ 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: 1665462086}
+ - {fileID: 1553718426}
+ m_Father: {fileID: 312509570}
+ 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 &1877041864
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1877041862}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Padding:
+ m_Left: 20
+ m_Right: 20
+ m_Top: 20
+ m_Bottom: 20
+ m_ChildAlignment: 1
+ m_Spacing: 50
+ m_ChildForceExpandWidth: 1
+ m_ChildForceExpandHeight: 0
+ m_ChildControlWidth: 1
+ m_ChildControlHeight: 0
+--- !u!222 &1877041865
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1877041862}
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scenes/InspectorFieldsGallery.unity.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scenes/InspectorFieldsGallery.unity.meta
new file mode 100644
index 00000000000..66c5582e7ee
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scenes/InspectorFieldsGallery.unity.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d4083f42bece21c49b26e5acc1f2cbf6
+timeCreated: 1509573767
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scripts.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scripts.meta
new file mode 100644
index 00000000000..33d8e9cecb9
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 252193e3c0ce07d469e54ec5f0693509
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scripts/InspectorFieldsExample.cs b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scripts/InspectorFieldsExample.cs
new file mode 100644
index 00000000000..d0220bcdde3
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scripts/InspectorFieldsExample.cs
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields
+{
+ ///
+ /// Example of using InspectorFields attributes in a class to create custom inspectors
+ /// This is on approach for building complex inspectors that need to be customized or the need to overcome lack of polymorphism support
+ /// They provide a way to create one inspector for multiple classes
+ /// Example: Create a monobehavior or scriptable object with a custom inspector.
+ /// The functionality or settings can be changed by assigning a custom script to the object
+ /// Use InspectorFields to render the custom properties inside the custom script in the inspector
+ /// When the app launches, copy the properties to the new instance of the script
+ /// An example of this can be found in Interactables Receivers.
+ /// Each Receiver is a custom class that renders their properties in the Interactables custom inspector
+ ///
+ public class InspectorFieldsExample : MonoBehaviour
+ {
+ [InspectorField(Label = "Component Name", Tooltip = "The name of the component", Type = InspectorField.FieldTypes.String)]
+ public string ComponentName = "My Name";
+
+ [InspectorField(Label = "Enabled", Tooltip = "Is the component enabled?", Type = InspectorField.FieldTypes.Bool)]
+ public bool Enabled;
+
+ [InspectorField(Label = "Component Option", Tooltip = "Select an option", Type = InspectorField.FieldTypes.DropdownString, Options = new string[]{"Option 1", "Option 2", "Option 3", "Option 4" })]
+ public string ComponentOption = "Option 3";
+
+ [InspectorField(Label = "Component Index", Tooltip = "A index value of the component", Type = InspectorField.FieldTypes.DropdownInt, Options = new string[] { "Index 0", "Index 1", "Index 2", "Index 3", "Index 4" })]
+ public int ComponentIndex = 2;
+
+ ///
+ /// A holder for the InpsectorFields as a list
+ /// The inspector will update these settings while in the editor
+ ///
+ [HideInInspector]
+ public List Settings;
+
+ private void Awake()
+ {
+ // copy the virtual property settings values to the actual properties
+ // this can be done on awake or when creating a new instance of a class
+ InspectorGenericFields.LoadSettings(this, Settings);
+ }
+
+ private void Update()
+ {
+ print("Name: " + ComponentName + ", Enabled: " + Enabled + ", Option: " + ComponentOption + ", Index: " + ComponentIndex);
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scripts/InspectorFieldsExample.cs.meta b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scripts/InspectorFieldsExample.cs.meta
new file mode 100644
index 00000000000..c12cd5b24e5
--- /dev/null
+++ b/Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Scripts/InspectorFieldsExample.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: caa691d22bb60a141b6d4c76ce125f97
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable.meta
new file mode 100644
index 00000000000..93299b992ed
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4004ff108cc905e40b4716f0e85438af
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Animations.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Animations.meta
new file mode 100644
index 00000000000..b84c6d72152
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Animations.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2bc8cf1909ce8974192f0f33ec6ff4b9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Animations/AnimatiorButtonController.controller b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Animations/AnimatiorButtonController.controller
new file mode 100644
index 00000000000..6faddf97acb
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Animations/AnimatiorButtonController.controller
@@ -0,0 +1,3425 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!91 &9100000
+AnimatorController:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: AnimatiorButtonController
+ serializedVersion: 5
+ m_AnimatorParameters:
+ - m_Name: Default
+ m_Type: 9
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 0}
+ - m_Name: Focus
+ m_Type: 9
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 0}
+ - m_Name: Pressed
+ m_Type: 9
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 0}
+ - m_Name: Disabled
+ m_Type: 9
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 0}
+ m_AnimatorLayers:
+ - serializedVersion: 5
+ m_Name: Base Layer
+ m_StateMachine: {fileID: 1107576934583247424}
+ m_Mask: {fileID: 0}
+ m_Motions: []
+ m_Behaviours: []
+ m_BlendingMode: 0
+ m_SyncedLayerIndex: -1
+ m_DefaultWeight: 0
+ m_IKPass: 0
+ m_SyncedLayerAffectsTiming: 0
+ m_Controller: {fileID: 9100000}
+--- !u!74 &74014176472854756
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Focus
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.41666666
+ value: {x: 0, y: 0, z: -0.005}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: FrontPlate
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0.003, z: -0.003}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.41666666
+ value: {x: 0, y: 0.003, z: -0.008}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: Label
+ m_ScaleCurves: []
+ m_FloatCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.6313726
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.627451
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.627451
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.6
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.7372549
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 3479601132
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1303350129
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1571785585
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1840221041
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1303350129
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1571785585
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1840221041
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 2108656497
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 2108656497
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.41666666
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.6313726
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.627451
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.627451
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: -0.005
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.6
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.7372549
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: -0.008
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_GenerateMotionCurves: 0
+ m_Events: []
+--- !u!74 &74189836020696290
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Pressed
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: -0.005}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.41666666
+ value: {x: 0, y: 0, z: 0.004}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: FrontPlate
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0.003, z: -0.008}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.41666666
+ value: {x: 0, y: 0.003, z: 0.001}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: Label
+ m_ScaleCurves: []
+ m_FloatCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.09019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.6
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.4392157
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7372549
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.5647059
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 3479601132
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1303350129
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1571785585
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1840221041
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1303350129
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1571785585
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1840221041
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 2108656497
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 2108656497
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.41666666
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -0.005
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.004
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.09019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.6
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.4392157
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7372549
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.5647059
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -0.008
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.001
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_GenerateMotionCurves: 0
+ m_Events: []
+--- !u!74 &74587771991130870
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Disabled
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.41666666
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: FrontPlate
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0.003, z: -0.003}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.41666666
+ value: {x: 0, y: 0.003, z: -0.003}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: Label
+ m_ScaleCurves: []
+ m_FloatCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.6313726
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.627451
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.627451
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1303350129
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1571785585
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1840221041
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1303350129
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1571785585
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1840221041
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 3479601132
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 2108656497
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 2108656497
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.41666666
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.6313726
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.627451
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.627451
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.39215687
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: -0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_GenerateMotionCurves: 0
+ m_Events: []
+--- !u!74 &74848606230950888
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Default
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: -0.005}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.41666666
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: FrontPlate
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0.003, z: -0.008}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.41666666
+ value: {x: 0, y: 0.003, z: -0.003}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: Label
+ m_ScaleCurves: []
+ m_FloatCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.6320754
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.62909395
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.62909395
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.6
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7372549
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 3479601132
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1303350129
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1571785585
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 1840221041
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1303350129
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1571785585
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 1840221041
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 4080383872
+ attribute: 2108656497
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 2599891448
+ attribute: 2108656497
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.41666666
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.6320754
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.62909395
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0.9019608
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.62909395
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: Background
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -0.005
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: FrontPlate
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.r
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.6
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.g
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.7372549
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.7058824
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.b
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._Color.a
+ path: FrontPlate
+ classID: 23
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -0.008
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: -0.003
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: Label
+ classID: 4
+ script: {fileID: 0}
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_GenerateMotionCurves: 0
+ m_Events: []
+--- !u!1101 &1101155858249788300
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Focus
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102686303647916144}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &1101336696908353208
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Pressed
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102771800408472240}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &1101701438761946388
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Disabled
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102801543483312550}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &1101745921241830460
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Default
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102893148277170820}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1102 &1102686303647916144
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Focus
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 74014176472854756}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102771800408472240
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Pressed
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 74189836020696290}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102801543483312550
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Disabled
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 74587771991130870}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102893148277170820
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Default
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 74848606230950888}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1107 &1107576934583247424
+AnimatorStateMachine:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Base Layer
+ m_ChildStates:
+ - serializedVersion: 1
+ m_State: {fileID: 1102893148277170820}
+ m_Position: {x: 120, y: 228, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102686303647916144}
+ m_Position: {x: 235, y: 65, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102771800408472240}
+ m_Position: {x: 270, y: 130, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102801543483312550}
+ m_Position: {x: 305, y: 195, z: 0}
+ m_ChildStateMachines: []
+ m_AnyStateTransitions:
+ - {fileID: 1101745921241830460}
+ - {fileID: 1101155858249788300}
+ - {fileID: 1101336696908353208}
+ - {fileID: 1101701438761946388}
+ m_EntryTransitions: []
+ m_StateMachineTransitions: {}
+ m_StateMachineBehaviours: []
+ m_AnyStatePosition: {x: 50, y: 20, z: 0}
+ m_EntryPosition: {x: 50, y: 120, z: 0}
+ m_ExitPosition: {x: 800, y: 120, z: 0}
+ m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+ m_DefaultState: {fileID: 1102893148277170820}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Animations/AnimatiorButtonController.controller.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Animations/AnimatiorButtonController.controller.meta
new file mode 100644
index 00000000000..21e7f1c6366
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Animations/AnimatiorButtonController.controller.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3984e7415e5be5a45886f4e09cb35542
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 9100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials.meta
new file mode 100644
index 00000000000..7b1ec25dd03
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cc5348b845361184bb306f083c03f5ae
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ButtonBackground.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ButtonBackground.mat
new file mode 100644
index 00000000000..e0e2ee59263
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ButtonBackground.mat
@@ -0,0 +1,178 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ButtonBackground
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT
+ _DISABLE_ALBEDO_MAP _FORCEPERPIXEL_ON _HOVER_COLOR_OVERRIDE _HOVER_LIGHT _SHADE4_ON
+ _SPECULARHIGHLIGHTS_ON _SPECULAR_HIGHLIGHTS _USEAMBIENT_ON _USEDIFFUSE_ON _USEMAINCOLOR_ON
+ _USEVERTEXCOLOR_ON
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 1
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _CubeMap:
+ 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}
+ - _GlossMap:
+ 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}
+ - _NormalMap:
+ 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}
+ - _SpecularMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _AlbedoAlphaMode: 0
+ - _AlphaTest: 0
+ - _BlendOp: 0
+ - _BorderLight: 1
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.06
+ - _BorderWidth: 0.416
+ - _BumpScale: 1
+ - _CalibrationSpaceReflections: 0
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _Cull: 2
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 1
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 1
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _ForcePerPixel: 1
+ - _Gloss: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 1
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _ReflectionScale: 2
+ - _Reflections: 0
+ - _Refraction: 0
+ - _RefractiveIndex: 0
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 0.7
+ - _RoundCornerMargin: 0.01
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Shade4: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _Specular: 10
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _UseAmbient: 1
+ - _UseBumpMap: 0
+ - _UseDiffuse: 1
+ - _UseEmissionColor: 0
+ - _UseEmissionMap: 0
+ - _UseGlossMap: 0
+ - _UseMainColor: 1
+ - _UseMainTex: 0
+ - _UseOcclusionMap: 0
+ - _UseReflections: 0
+ - _UseRimLighting: 0
+ - _UseSpecularMap: 0
+ - _UseVertexColor: 1
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 0.2474635, g: 0.686109, b: 0.7830189, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
+ - _RimColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _TextureScaleOffset: {r: 1, g: 1, b: 0, a: 0}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ButtonBackground.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ButtonBackground.mat.meta
new file mode 100644
index 00000000000..2361b648dbe
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ButtonBackground.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: b861d27e49afd724286961e0f6a1de52
+timeCreated: 1522165944
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ColorButton.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ColorButton.mat
new file mode 100644
index 00000000000..2d4f48aa65f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ColorButton.mat
@@ -0,0 +1,141 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ColorButton
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _DISABLE_ALBEDO_MAP
+ _HOVER_LIGHT _REFLECTIONS _SPECULAR_HIGHLIGHTS
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ 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}
+ - _NormalMap:
+ 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:
+ - _AlbedoAlphaMode: 0
+ - _BlendOp: 0
+ - _BorderLight: 0
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.1
+ - _BorderWidth: 0.1
+ - _BumpScale: 1
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 1
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 0
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 1
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _Reflections: 1
+ - _Refraction: 0
+ - _RefractiveIndex: 0
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 0.25
+ - _RoundCornerMargin: 0.01
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
+ - _RimColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ColorButton.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ColorButton.mat.meta
new file mode 100644
index 00000000000..a1b4fec6232
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ColorButton.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 745567f5ce7a31346bc19e4f940b9203
+timeCreated: 1522277849
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/DefaultButton.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/DefaultButton.mat
new file mode 100644
index 00000000000..7b28c15a3de
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/DefaultButton.mat
@@ -0,0 +1,178 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: DefaultButton
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT
+ _DISABLE_ALBEDO_MAP _FORCEPERPIXEL_ON _HOVER_COLOR_OVERRIDE _HOVER_LIGHT _REFLECTIONS
+ _SHADE4_ON _SPECULARHIGHLIGHTS_ON _SPECULAR_HIGHLIGHTS _USEAMBIENT_ON _USEDIFFUSE_ON
+ _USEMAINCOLOR_ON _USEVERTEXCOLOR_ON
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 1
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _CubeMap:
+ 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}
+ - _GlossMap:
+ 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}
+ - _NormalMap:
+ 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}
+ - _SpecularMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _AlbedoAlphaMode: 0
+ - _AlphaTest: 0
+ - _BlendOp: 0
+ - _BorderLight: 1
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.218
+ - _BorderWidth: 0.523
+ - _BumpScale: 1
+ - _CalibrationSpaceReflections: 0
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _Cull: 2
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 1
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 1
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _ForcePerPixel: 1
+ - _Gloss: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 1
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _ReflectionScale: 2
+ - _Reflections: 1
+ - _Refraction: 0
+ - _RefractiveIndex: 0
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 0.7
+ - _RoundCornerMargin: 0.01
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Shade4: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _Specular: 10
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _UseAmbient: 1
+ - _UseBumpMap: 0
+ - _UseDiffuse: 1
+ - _UseEmissionColor: 0
+ - _UseEmissionMap: 0
+ - _UseGlossMap: 0
+ - _UseMainColor: 1
+ - _UseMainTex: 0
+ - _UseOcclusionMap: 0
+ - _UseReflections: 0
+ - _UseRimLighting: 0
+ - _UseSpecularMap: 0
+ - _UseVertexColor: 1
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.1764706, g: 0.49019608, b: 0.6039216, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 0.6650944, g: 0.93910795, b: 1, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
+ - _RimColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _TextureScaleOffset: {r: 1, g: 1, b: 0, a: 0}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/DefaultButton.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/DefaultButton.mat.meta
new file mode 100644
index 00000000000..9a32f993daf
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/DefaultButton.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 11a74654c6e973049993e13dd7e9733f
+timeCreated: 1522165944
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Foreground.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Foreground.mat
new file mode 100644
index 00000000000..8a100cd1986
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Foreground.mat
@@ -0,0 +1,178 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Foreground
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT
+ _DISABLE_ALBEDO_MAP _FORCEPERPIXEL_ON _HOVER_COLOR_OVERRIDE _HOVER_LIGHT _SHADE4_ON
+ _SPECULARHIGHLIGHTS_ON _SPECULAR_HIGHLIGHTS _USEAMBIENT_ON _USEDIFFUSE_ON _USEMAINCOLOR_ON
+ _USEVERTEXCOLOR_ON
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 1
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _CubeMap:
+ 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}
+ - _GlossMap:
+ 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}
+ - _NormalMap:
+ 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}
+ - _SpecularMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _AlbedoAlphaMode: 0
+ - _AlphaTest: 0
+ - _BlendOp: 0
+ - _BorderLight: 1
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.06
+ - _BorderWidth: 0.416
+ - _BumpScale: 1
+ - _CalibrationSpaceReflections: 0
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _Cull: 2
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 1
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 1
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _ForcePerPixel: 1
+ - _Gloss: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 1
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _ReflectionScale: 2
+ - _Reflections: 0
+ - _Refraction: 0
+ - _RefractiveIndex: 0
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 0.7
+ - _RoundCornerMargin: 0.01
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Shade4: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _Specular: 10
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _UseAmbient: 1
+ - _UseBumpMap: 0
+ - _UseDiffuse: 1
+ - _UseEmissionColor: 0
+ - _UseEmissionMap: 0
+ - _UseGlossMap: 0
+ - _UseMainColor: 1
+ - _UseMainTex: 0
+ - _UseOcclusionMap: 0
+ - _UseReflections: 0
+ - _UseRimLighting: 0
+ - _UseSpecularMap: 0
+ - _UseVertexColor: 1
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.105882354, g: 0.6313726, b: 0.8867924, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 0.2474635, g: 0.686109, b: 0.7830189, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
+ - _RimColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _TextureScaleOffset: {r: 1, g: 1, b: 0, a: 0}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Foreground.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Foreground.mat.meta
new file mode 100644
index 00000000000..025c4621933
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Foreground.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 3b3d487d6722afe489a882284f787bbd
+timeCreated: 1522165944
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Ground.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Ground.mat
new file mode 100644
index 00000000000..5721dd455d4
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Ground.mat
@@ -0,0 +1,177 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Ground
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _DISABLE_ALBEDO_MAP
+ _FORCEPERPIXEL_ON _HOVER_LIGHT _SHADE4_ON _SPECULARHIGHLIGHTS_ON _SPECULAR_HIGHLIGHTS
+ _USEAMBIENT_ON _USEDIFFUSE_ON _USEMAINCOLOR_ON _USEVERTEXCOLOR_ON
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _CubeMap:
+ 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}
+ - _GlossMap:
+ 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}
+ - _NormalMap:
+ 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}
+ - _SpecularMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _AlbedoAlphaMode: 0
+ - _AlphaTest: 0
+ - _BlendOp: 0
+ - _BorderLight: 0
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.1
+ - _BorderWidth: 0.1
+ - _BumpScale: 1
+ - _CalibrationSpaceReflections: 0
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _Cull: 2
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 1
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 0
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _ForcePerPixel: 1
+ - _Gloss: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 1
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _ReflectionScale: 2
+ - _Reflections: 0
+ - _Refraction: 0
+ - _RefractiveIndex: 0
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 0.7
+ - _RoundCornerMargin: 0.01
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Shade4: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _Specular: 10
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _UseAmbient: 1
+ - _UseBumpMap: 0
+ - _UseDiffuse: 1
+ - _UseEmissionColor: 0
+ - _UseEmissionMap: 0
+ - _UseGlossMap: 0
+ - _UseMainColor: 1
+ - _UseMainTex: 0
+ - _UseOcclusionMap: 0
+ - _UseReflections: 0
+ - _UseRimLighting: 0
+ - _UseSpecularMap: 0
+ - _UseVertexColor: 1
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.2736739, g: 0.3757113, b: 0.4716981, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
+ - _RimColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _TextureScaleOffset: {r: 1, g: 1, b: 0, a: 0}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Ground.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Ground.mat.meta
new file mode 100644
index 00000000000..6db7aaacce4
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/Ground.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 1fac60a6b183d204dbe2c379128ad367
+timeCreated: 1522165944
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonContent.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonContent.mat
new file mode 100644
index 00000000000..2c76836fae5
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonContent.mat
@@ -0,0 +1,150 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: HolographicButtonContent
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _ALPHABLEND_ON _BORDER_LIGHT _BORDER_LIGHT_USES_HOVER_COLOR _DISABLE_ALBEDO_MAP
+ _HOVER_COLOR_OVERRIDE _METALLIC_TEXTURE_ALBEDO_CHANNEL_A
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 1
+ 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}
+ - _ChannelMap:
+ 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}
+ - _LightMapTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 1443b22b919aede4ca14ca5e3bf81096, type: 3}
+ 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}
+ - _NormalMap:
+ 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:
+ - _AlbedoAlphaMode: 1
+ - _AlbedoAlphaSmoothness: 0
+ - _BlendOp: 0
+ - _BorderLight: 1
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.437
+ - _BorderWidth: 0.443
+ - _BorderWidthHorizontal: 0.1
+ - _BorderWidthVertical: 0.1
+ - _BumpScale: 1
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _CullMode: 2
+ - _CustomMode: 2
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 0
+ - _DstBlend: 1
+ - _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 1
+ - _EnableLightMap: 0
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 0
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 4
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _Reflections: 0
+ - _Refraction: 0
+ - _RefractiveIndex: 1.1
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 5.83
+ - _RoundCornerMargin: 0
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Smoothness: 0.212
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 0
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _ZTest: 4
+ - _ZWrite: 0
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.066037714, g: 0.066037714, b: 0.066037714, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColor: {r: 1, g: 0, b: 0, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.828}
+ - _RimColor: {r: 1, g: 1, b: 1, a: 0.497}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonContent.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonContent.mat.meta
new file mode 100644
index 00000000000..c90858c9340
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonContent.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 1c018e76b2657e041976bfa8486880aa
+timeCreated: 1509639011
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonIconFontMaterial.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonIconFontMaterial.mat
new file mode 100644
index 00000000000..1444225e724
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonIconFontMaterial.mat
@@ -0,0 +1,84 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: HolographicButtonIconFontMaterial
+ m_Shader: {fileID: 10101, guid: 0000000000000000e000000000000000, type: 0}
+ m_ShaderKeywords: _USECOLOR_ON _USEMAINTEX_ON
+ m_LightmapFlags: 5
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ 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: 2800000, guid: bb1b4a9241fba2042a81428e917afd5d, type: 3}
+ 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
+ - _ColorMask: 15
+ - _ColorWriteMask: 15
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _Glossiness: 0.5
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SrcBlend: 5
+ - _Stencil: 0
+ - _StencilComp: 8
+ - _StencilOp: 0
+ - _StencilReadMask: 255
+ - _StencilWriteMask: 255
+ - _UVSec: 0
+ - _UseColor: 1
+ - _UseMainTex: 1
+ - _UseUIAlphaClip: 0
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonIconFontMaterial.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonIconFontMaterial.mat.meta
new file mode 100644
index 00000000000..0e857f09b78
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonIconFontMaterial.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fa419ab56051229449e3b813df8f295f
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonPlate.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonPlate.mat
new file mode 100644
index 00000000000..84b08cfb81b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonPlate.mat
@@ -0,0 +1,150 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: HolographicButtonPlate
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT _BORDER_LIGHT_USES_HOVER_COLOR _DISABLE_ALBEDO_MAP
+ _HOVER_LIGHT _INNER_GLOW _METALLIC_TEXTURE_ALBEDO_CHANNEL_A
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 1
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ 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}
+ - _LightMapTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 1443b22b919aede4ca14ca5e3bf81096, type: 3}
+ 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}
+ - _NormalMap:
+ 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:
+ - _AlbedoAlphaMode: 1
+ - _AlbedoAlphaSmoothness: 0
+ - _BlendOp: 0
+ - _BorderLight: 1
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.294
+ - _BorderWidth: 0.035
+ - _BorderWidthHorizontal: 0.1
+ - _BorderWidthVertical: 0.1
+ - _BumpScale: 1
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 0
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.0001
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 0
+ - _EnableLightMap: 0
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 1
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 1
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _Reflections: 0
+ - _Refraction: 0
+ - _RefractiveIndex: 1.1
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 5.83
+ - _RoundCornerMargin: 0
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Smoothness: 0.351
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 0
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 0.616}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColor: {r: 1, g: 0, b: 0, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 0.566}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.522}
+ - _RimColor: {r: 1, g: 1, b: 1, a: 0.497}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonPlate.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonPlate.mat.meta
new file mode 100644
index 00000000000..e3634449164
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/HolographicButtonPlate.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: df4abdb025f6c11489a7f77f9fba8659
+timeCreated: 1509639011
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleBackground.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleBackground.mat
new file mode 100644
index 00000000000..3b913fdf8c6
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleBackground.mat
@@ -0,0 +1,177 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ToggleBackground
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _DISABLE_ALBEDO_MAP
+ _HOVER_LIGHT _SPECULARHIGHLIGHTS_ON _SPECULAR_HIGHLIGHTS _USEAMBIENT_ON _USEDIFFUSE_ON
+ _USEMAINCOLOR_ON
+ m_LightmapFlags: 1
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _CubeMap:
+ 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}
+ - _GlossMap:
+ 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}
+ - _NormalMap:
+ 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}
+ - _SpecularMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _AlbedoAlphaMode: 0
+ - _AlphaTest: 0
+ - _BlendOp: 0
+ - _BorderLight: 0
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.1
+ - _BorderWidth: 0.1
+ - _BumpScale: 1
+ - _CalibrationSpaceReflections: 0
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _Cull: 2
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 1
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 0
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _ForcePerPixel: 0
+ - _Gloss: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 1
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _ReflectionScale: 2
+ - _Reflections: 0
+ - _Refraction: 0
+ - _RefractiveIndex: 0
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 0.7
+ - _RoundCornerMargin: 0
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Shade4: 0
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _Specular: 10
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _UseAmbient: 1
+ - _UseBumpMap: 0
+ - _UseDiffuse: 1
+ - _UseEmissionColor: 0
+ - _UseEmissionMap: 0
+ - _UseGlossMap: 0
+ - _UseMainColor: 1
+ - _UseMainTex: 0
+ - _UseOcclusionMap: 0
+ - _UseReflections: 0
+ - _UseRimLighting: 0
+ - _UseSpecularMap: 0
+ - _UseVertexColor: 0
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.7058824, g: 0.7058824, b: 0.7058824, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
+ - _RimColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _TextureScaleOffset: {r: 1, g: 1, b: 0, a: 0}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleBackground.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleBackground.mat.meta
new file mode 100644
index 00000000000..078051acff2
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleBackground.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 970c8a6564852574f9ba8959ffcd47f8
+timeCreated: 1493238935
+licenseType: Pro
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleButton.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleButton.mat
new file mode 100644
index 00000000000..ceb1cbce3f3
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleButton.mat
@@ -0,0 +1,177 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ToggleButton
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _DISABLE_ALBEDO_MAP
+ _HOVER_LIGHT _SPECULARHIGHLIGHTS_ON _SPECULAR_HIGHLIGHTS _USEAMBIENT_ON _USEDIFFUSE_ON
+ _USEMAINCOLOR_ON
+ m_LightmapFlags: 1
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _CubeMap:
+ 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}
+ - _GlossMap:
+ 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}
+ - _NormalMap:
+ 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}
+ - _SpecularMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _AlbedoAlphaMode: 0
+ - _AlphaTest: 0
+ - _BlendOp: 0
+ - _BorderLight: 0
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.1
+ - _BorderWidth: 0.1
+ - _BumpScale: 1
+ - _CalibrationSpaceReflections: 0
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _Cull: 2
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 1
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 0
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _ForcePerPixel: 0
+ - _Gloss: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 1
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _ReflectionScale: 2
+ - _Reflections: 0
+ - _Refraction: 0
+ - _RefractiveIndex: 0
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 0.7
+ - _RoundCornerMargin: 0
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Shade4: 0
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _Specular: 10
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _UseAmbient: 1
+ - _UseBumpMap: 0
+ - _UseDiffuse: 1
+ - _UseEmissionColor: 0
+ - _UseEmissionMap: 0
+ - _UseGlossMap: 0
+ - _UseMainColor: 1
+ - _UseMainTex: 0
+ - _UseOcclusionMap: 0
+ - _UseReflections: 0
+ - _UseRimLighting: 0
+ - _UseSpecularMap: 0
+ - _UseVertexColor: 0
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
+ - _RimColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _TextureScaleOffset: {r: 1, g: 1, b: 0, a: 0}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleButton.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleButton.mat.meta
new file mode 100644
index 00000000000..f4a375b3968
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleButton.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 471cd2931ade3d147b640131e71d9ad9
+timeCreated: 1493238936
+licenseType: Pro
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleIcon.mat b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleIcon.mat
new file mode 100644
index 00000000000..21a4ea9a988
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleIcon.mat
@@ -0,0 +1,177 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ToggleIcon
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _DISABLE_ALBEDO_MAP
+ _HOVER_LIGHT _SPECULARHIGHLIGHTS_ON _SPECULAR_HIGHLIGHTS _USEAMBIENT_ON _USEDIFFUSE_ON
+ _USEMAINCOLOR_ON
+ m_LightmapFlags: 1
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _CubeMap:
+ 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}
+ - _GlossMap:
+ 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}
+ - _NormalMap:
+ 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}
+ - _SpecularMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _AlbedoAlphaMode: 0
+ - _AlphaTest: 0
+ - _BlendOp: 0
+ - _BorderLight: 0
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.1
+ - _BorderWidth: 0.1
+ - _BumpScale: 1
+ - _CalibrationSpaceReflections: 0
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _Cull: 2
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 1
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 0
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _ForcePerPixel: 0
+ - _Gloss: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _HoverLight: 1
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _ReflectionScale: 2
+ - _Reflections: 0
+ - _Refraction: 0
+ - _RefractiveIndex: 0
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 0.7
+ - _RoundCornerMargin: 0
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Shade4: 0
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _Specular: 10
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _UseAmbient: 1
+ - _UseBumpMap: 0
+ - _UseDiffuse: 1
+ - _UseEmissionColor: 0
+ - _UseEmissionMap: 0
+ - _UseGlossMap: 0
+ - _UseMainColor: 1
+ - _UseMainTex: 0
+ - _UseOcclusionMap: 0
+ - _UseReflections: 0
+ - _UseRimLighting: 0
+ - _UseSpecularMap: 0
+ - _UseVertexColor: 0
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.90196085, g: 0.90196085, b: 0.90196085, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
+ - _RimColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _TextureScaleOffset: {r: 1, g: 1, b: 0, a: 0}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleIcon.mat.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleIcon.mat.meta
new file mode 100644
index 00000000000..60da3f4c816
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Materials/ToggleIcon.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 02183eecee283e647b4e8660f71bb271
+timeCreated: 1493238936
+licenseType: Pro
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Models.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Models.meta
new file mode 100644
index 00000000000..4ae3137ec7b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Models.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fd72de110d1b746489b2c709309d8dab
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Models/InteractableAssets.FBX b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Models/InteractableAssets.FBX
new file mode 100644
index 00000000000..a2c5412584a
Binary files /dev/null and b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Models/InteractableAssets.FBX differ
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Models/InteractableAssets.FBX.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Models/InteractableAssets.FBX.meta
new file mode 100644
index 00000000000..c000a5a5d7c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Models/InteractableAssets.FBX.meta
@@ -0,0 +1,136 @@
+fileFormatVersion: 2
+guid: 3d93f7219bba0634a9ee26865f9d6a3c
+ModelImporter:
+ serializedVersion: 22
+ fileIDToRecycleName:
+ 100000: Arrow
+ 100002: CheckBoxCheck
+ 100004: CheckBoxX
+ 100006: //RootNode
+ 100008: RadialDot
+ 100010: RaialButon
+ 100012: SliderKnob
+ 100014: ToggleButton
+ 100016: ToggleOutline
+ 400000: Arrow
+ 400002: CheckBoxCheck
+ 400004: CheckBoxX
+ 400006: //RootNode
+ 400008: RadialDot
+ 400010: RaialButon
+ 400012: SliderKnob
+ 400014: ToggleButton
+ 400016: ToggleOutline
+ 2100000: RadialButton
+ 2100002: RadialDot
+ 2100004: ToggleOutlineOuter
+ 2100006: ToggleOutlineInner
+ 2100008: CheckBoxCheck
+ 2100010: SliderKnob
+ 2300000: Arrow
+ 2300002: CheckBoxCheck
+ 2300004: CheckBoxX
+ 2300006: RadialDot
+ 2300008: RaialButon
+ 2300010: SliderKnob
+ 2300012: ToggleButton
+ 2300014: ToggleOutline
+ 3300000: Arrow
+ 3300002: CheckBoxCheck
+ 3300004: CheckBoxX
+ 3300006: RadialDot
+ 3300008: RaialButon
+ 3300010: SliderKnob
+ 3300012: ToggleButton
+ 3300014: ToggleOutline
+ 4300000: RaialButon
+ 4300002: RadialDot
+ 4300004: ToggleOutline
+ 4300006: ToggleButton
+ 4300008: CheckBoxX
+ 4300010: CheckBoxCheck
+ 4300012: SliderKnob
+ 4300014: Arrow
+ 7400000: Take 001
+ 9500000: //RootNode
+ externalObjects: {}
+ materials:
+ importMaterials: 0
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 1
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ optimizeMeshForGPU: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ importAnimation: 1
+ copyAvatar: 0
+ humanDescription:
+ serializedVersion: 2
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ rootMotionBoneName:
+ rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ animationType: 2
+ humanoidOversampling: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs.meta
new file mode 100644
index 00000000000..dd51a05e108
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d5c2559616edcb14a8f70b01636b7ccb
+folderAsset: yes
+timeCreated: 1492726397
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/AnimationButton.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/AnimationButton.prefab
new file mode 100644
index 00000000000..fa4fe580902
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/AnimationButton.prefab
@@ -0,0 +1,429 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1795626731574084}
+ m_IsPrefabParent: 1
+--- !u!1 &1229886398368936
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4040562404856448}
+ - component: {fileID: 95855903953761124}
+ m_Layer: 0
+ m_Name: ButtonContent
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1333278584856272
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4528902181121194}
+ - component: {fileID: 23547974686474686}
+ - component: {fileID: 102006639917048896}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1376592175035822
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4476385621938454}
+ - component: {fileID: 33793825543083212}
+ - component: {fileID: 65681085170139784}
+ - component: {fileID: 23188114083987784}
+ - component: {fileID: 114962202791201416}
+ m_Layer: 0
+ m_Name: FrontPlate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1795626731574084
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4607159678781596}
+ - component: {fileID: 65169310230401214}
+ - component: {fileID: 114750426120364918}
+ m_Layer: 0
+ m_Name: AnimationButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1927372669350608
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4017873985773760}
+ - component: {fileID: 33407310223781796}
+ - component: {fileID: 65088712743152404}
+ - component: {fileID: 23020392040719048}
+ - component: {fileID: 114365820831752002}
+ m_Layer: 0
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4017873985773760
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1927372669350608}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.005}
+ m_LocalScale: {x: 0.21484375, y: 0.05859375, z: 0.0048828125}
+ m_Children: []
+ m_Father: {fileID: 4040562404856448}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4040562404856448
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1229886398368936}
+ 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: 4528902181121194}
+ - {fileID: 4476385621938454}
+ - {fileID: 4017873985773760}
+ m_Father: {fileID: 4607159678781596}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4476385621938454
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376592175035822}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.20507812, y: 0.048828125, z: 0.0048828125}
+ m_Children: []
+ m_Father: {fileID: 4040562404856448}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4528902181121194
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1333278584856272}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.003, z: -0.003}
+ m_LocalScale: {x: 0.005, y: 0.005000004, z: 0.005000003}
+ m_Children: []
+ m_Father: {fileID: 4040562404856448}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!4 &4607159678781596
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1795626731574084}
+ 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: 4040562404856448}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23020392040719048
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1927372669350608}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23188114083987784
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376592175035822}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 3b3d487d6722afe489a882284f787bbd, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23547974686474686
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1333278584856272}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33407310223781796
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1927372669350608}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33793825543083212
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376592175035822}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65088712743152404
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1927372669350608}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65169310230401214
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1795626731574084}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.22007813, y: 0.063828126, z: 0.024882812}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65681085170139784
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376592175035822}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!95 &95855903953761124
+Animator:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1229886398368936}
+ m_Enabled: 1
+ m_Avatar: {fileID: 0}
+ m_Controller: {fileID: 9100000, guid: 3984e7415e5be5a45886f4e09cb35542, type: 2}
+ m_CullingMode: 0
+ m_UpdateMode: 0
+ m_ApplyRootMotion: 0
+ m_LinearVelocityBlending: 0
+ m_WarningMessage:
+ m_HasTransformHierarchy: 1
+ m_AllowConstantClipSamplingOptimization: 1
+ m_KeepAnimatorControllerStateOnDisable: 0
+--- !u!102 &102006639917048896
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1333278584856272}
+ m_Text: Animator Button
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!114 &114365820831752002
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1927372669350608}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 18715f9b6e2e86c42902a892a35010dc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ ItemSize: {x: 440, y: 120, z: 10}
+ OnlyInEditMode: 0
+--- !u!114 &114750426120364918
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1795626731574084}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 1
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1229886398368936}
+ Themes:
+ - {fileID: 11400000, guid: c786ef085bfd755409c87a7eadcbb450, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!114 &114962202791201416
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1376592175035822}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4017873985773760}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -20, y: -20, z: 0}
+ OnlyInEditMode: 0
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/AnimationButton.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/AnimationButton.prefab.meta
new file mode 100644
index 00000000000..3bba490c298
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/AnimationButton.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d5e0e8cc740eb134789fd1f6bb5bb80a
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Button.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Button.prefab
new file mode 100644
index 00000000000..bf4922a1446
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Button.prefab
@@ -0,0 +1,871 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1129523842154474}
+ m_IsPrefabParent: 1
+--- !u!1 &1117314873095580
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4888946412176522}
+ - component: {fileID: 33992021502377378}
+ - component: {fileID: 65591877655842180}
+ - component: {fileID: 23487570599995180}
+ - component: {fileID: 114392427489639844}
+ m_Layer: 0
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1129523842154474
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4899954742063566}
+ - component: {fileID: 65501967504898374}
+ - component: {fileID: 114818926546564510}
+ m_Layer: 0
+ m_Name: Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1326063555775678
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4457593704773214}
+ m_Layer: 0
+ m_Name: ButtonContent
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1373633673004372
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4750079459773098}
+ - component: {fileID: 33747880585099068}
+ - component: {fileID: 65697264773083508}
+ - component: {fileID: 23921117442800242}
+ - component: {fileID: 114697700997837616}
+ m_Layer: 0
+ m_Name: FrontPlate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1450622951675032
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4283610823276578}
+ - component: {fileID: 33701908487399382}
+ - component: {fileID: 65660822846676256}
+ - component: {fileID: 23538518560789514}
+ - component: {fileID: 114278716807683266}
+ m_Layer: 0
+ m_Name: Left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1554726048461812
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4463216719235936}
+ - component: {fileID: 33223236520391178}
+ - component: {fileID: 65965631397944180}
+ - component: {fileID: 23526071733757326}
+ - component: {fileID: 114100542745781632}
+ m_Layer: 0
+ m_Name: Top
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1701107333441922
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4076509787018116}
+ m_Layer: 0
+ m_Name: Borders
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1850983680486268
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4274117614729588}
+ - component: {fileID: 33615031388294458}
+ - component: {fileID: 65453959424712320}
+ - component: {fileID: 23222228283142944}
+ - component: {fileID: 114509078727615392}
+ m_Layer: 0
+ m_Name: Bottom
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1871147712450402
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4778682523773738}
+ - component: {fileID: 33699456751370276}
+ - component: {fileID: 65511204890081376}
+ - component: {fileID: 23530474296008534}
+ - component: {fileID: 114315904620530884}
+ m_Layer: 0
+ m_Name: Right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1981214534506362
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4006037907185286}
+ - component: {fileID: 23176595217100076}
+ - component: {fileID: 102556874199586456}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4006037907185286
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1981214534506362}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.003, z: -0.003}
+ m_LocalScale: {x: 0.005, y: 0.005000004, z: 0.005000003}
+ m_Children: []
+ m_Father: {fileID: 4457593704773214}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!4 &4076509787018116
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1701107333441922}
+ 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: 4888946412176522}
+ - {fileID: 4283610823276578}
+ - {fileID: 4778682523773738}
+ - {fileID: 4463216719235936}
+ - {fileID: 4274117614729588}
+ m_Father: {fileID: 4457593704773214}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4274117614729588
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1850983680486268}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.026855469, z: 0.0024585938}
+ m_LocalScale: {x: 0.21484375, y: 0.0048828125, z: 0.009765625}
+ m_Children: []
+ m_Father: {fileID: 4076509787018116}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4283610823276578
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1450622951675032}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.10498047, y: 0, z: 0.0024585938}
+ m_LocalScale: {x: 0.0048828125, y: 0.05859375, z: 0.009765625}
+ m_Children: []
+ m_Father: {fileID: 4076509787018116}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4457593704773214
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1326063555775678}
+ 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: 4006037907185286}
+ - {fileID: 4750079459773098}
+ - {fileID: 4076509787018116}
+ m_Father: {fileID: 4899954742063566}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4463216719235936
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1554726048461812}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.026855469, z: 0.0024585938}
+ m_LocalScale: {x: 0.21484375, y: 0.0048828125, z: 0.009765625}
+ m_Children: []
+ m_Father: {fileID: 4076509787018116}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4750079459773098
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1373633673004372}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.20507812, y: 0.048828125, z: 0.0048828125}
+ m_Children: []
+ m_Father: {fileID: 4457593704773214}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4778682523773738
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1871147712450402}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.10498047, y: 0, z: 0.0024585938}
+ m_LocalScale: {x: 0.0048828125, y: 0.05859375, z: 0.009765625}
+ m_Children: []
+ m_Father: {fileID: 4076509787018116}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4888946412176522
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1117314873095580}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.0049}
+ m_LocalScale: {x: 0.20507812, y: 0.048828125, z: 0.0048828125}
+ m_Children: []
+ m_Father: {fileID: 4076509787018116}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4899954742063566
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1129523842154474}
+ 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: 4457593704773214}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23176595217100076
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1981214534506362}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23222228283142944
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1850983680486268}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23487570599995180
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1117314873095580}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23526071733757326
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1554726048461812}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23530474296008534
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1871147712450402}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23538518560789514
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1450622951675032}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23921117442800242
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1373633673004372}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 3b3d487d6722afe489a882284f787bbd, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33223236520391178
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1554726048461812}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33615031388294458
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1850983680486268}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33699456751370276
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1871147712450402}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33701908487399382
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1450622951675032}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33747880585099068
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1373633673004372}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33992021502377378
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1117314873095580}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65453959424712320
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1850983680486268}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65501967504898374
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1129523842154474}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.22007813, y: 0.063828126, z: 0.024882812}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65511204890081376
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1871147712450402}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65591877655842180
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1117314873095580}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65660822846676256
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1450622951675032}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65697264773083508
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1373633673004372}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65965631397944180
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1554726048461812}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!102 &102556874199586456
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1981214534506362}
+ m_Text: Button
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!114 &114100542745781632
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1554726048461812}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e284c41c72ed62145b1ae10cfedd1196, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4888946412176522}
+ Weight: 10
+ Depth: 20
+ Alignment: {x: 0, y: 1, z: 0}
+ PositionOffset: {x: 0, y: 0, z: -5}
+ AddCorner: 1
+ OnlyInEditMode: 0
+--- !u!114 &114278716807683266
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1450622951675032}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e284c41c72ed62145b1ae10cfedd1196, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4888946412176522}
+ Weight: 10
+ Depth: 20
+ Alignment: {x: -1, y: 0, z: 0}
+ PositionOffset: {x: 0, y: 0, z: -5}
+ AddCorner: 1
+ OnlyInEditMode: 0
+--- !u!114 &114315904620530884
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1871147712450402}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e284c41c72ed62145b1ae10cfedd1196, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4888946412176522}
+ Weight: 10
+ Depth: 20
+ Alignment: {x: 1, y: 0, z: 0}
+ PositionOffset: {x: 0, y: 0, z: -5}
+ AddCorner: 1
+ OnlyInEditMode: 0
+--- !u!114 &114392427489639844
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1117314873095580}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 18715f9b6e2e86c42902a892a35010dc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ ItemSize: {x: 420, y: 100, z: 10}
+ OnlyInEditMode: 0
+--- !u!114 &114509078727615392
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1850983680486268}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e284c41c72ed62145b1ae10cfedd1196, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4888946412176522}
+ Weight: 10
+ Depth: 20
+ Alignment: {x: 0, y: -1, z: 0}
+ PositionOffset: {x: 0, y: 0, z: -5}
+ AddCorner: 1
+ OnlyInEditMode: 0
+--- !u!114 &114697700997837616
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1373633673004372}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4888946412176522}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: 0, y: 0, z: 0}
+ OnlyInEditMode: 0
+--- !u!114 &114818926546564510
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1129523842154474}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 1
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1373633673004372}
+ Themes:
+ - {fileID: 11400000, guid: 61962e4d95d843842bb2dee96b41da6c, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1701107333441922}
+ Themes:
+ - {fileID: 11400000, guid: b1ef68ffe69fad14a8d8401f7bd17db5, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1981214534506362}
+ Themes:
+ - {fileID: 11400000, guid: 210ecfb82b9f09c4d835184cd0034155, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Button.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Button.prefab.meta
new file mode 100644
index 00000000000..2a86667a0b0
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Button.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 02c524b22137b5449904f5395141cc73
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/CheckBox.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/CheckBox.prefab
new file mode 100644
index 00000000000..18e5800203c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/CheckBox.prefab
@@ -0,0 +1,645 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1775492867674862}
+ m_IsPrefabParent: 1
+--- !u!1 &1098505392087678
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4781408151868912}
+ - component: {fileID: 33641935424540274}
+ - component: {fileID: 23589133403261092}
+ - component: {fileID: 65203283302196396}
+ - component: {fileID: 114604455477286672}
+ m_Layer: 0
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1495934348724120
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4416126026153628}
+ - component: {fileID: 33275854933592506}
+ - component: {fileID: 23444226779442190}
+ m_Layer: 0
+ m_Name: CheckBoxX
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!1 &1645441935900780
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4858878450608414}
+ - component: {fileID: 33415806475787660}
+ - component: {fileID: 23929879725500384}
+ m_Layer: 0
+ m_Name: CheckBoxCheck
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1720786229012536
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4627392316691604}
+ - component: {fileID: 23038202191139816}
+ - component: {fileID: 102667059822850586}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1728092390328272
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4402144810473256}
+ m_Layer: 0
+ m_Name: ButtonContent
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1750987048839070
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4540306399422938}
+ - component: {fileID: 33728591499608816}
+ - component: {fileID: 23496164554082634}
+ m_Layer: 0
+ m_Name: Arrow
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!1 &1767278312977966
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4136500160732746}
+ - component: {fileID: 33653120745121860}
+ - component: {fileID: 23661315812672838}
+ - component: {fileID: 65527622757459022}
+ - component: {fileID: 114302202869515260}
+ m_Layer: 0
+ m_Name: Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1775492867674862
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4165280830115576}
+ - component: {fileID: 65394494458541452}
+ - component: {fileID: 114359879210576386}
+ m_Layer: 0
+ m_Name: CheckBox
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4136500160732746
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1767278312977966}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.034179688, y: 0.034179688, z: 0.0073242188}
+ m_Children: []
+ m_Father: {fileID: 4402144810473256}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4165280830115576
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1775492867674862}
+ 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: 4402144810473256}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4402144810473256
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1728092390328272}
+ 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: 4627392316691604}
+ - {fileID: 4781408151868912}
+ - {fileID: 4136500160732746}
+ - {fileID: 4540306399422938}
+ - {fileID: 4416126026153628}
+ - {fileID: 4858878450608414}
+ m_Father: {fileID: 4165280830115576}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4416126026153628
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1495934348724120}
+ m_LocalRotation: {x: -0.6532815, y: 0.270598, z: -0.270598, w: 0.6532815}
+ m_LocalPosition: {x: 0, y: 0, z: -0.005}
+ m_LocalScale: {x: 0.25, y: 0.25, z: 0.25}
+ m_Children: []
+ m_Father: {fileID: 4402144810473256}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4540306399422938
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1750987048839070}
+ m_LocalRotation: {x: -0.6532815, y: 0.270598, z: -0.270598, w: 0.6532815}
+ m_LocalPosition: {x: 0, y: 0, z: -0.005}
+ m_LocalScale: {x: 0.25, y: 0.25, z: 0.25}
+ m_Children: []
+ m_Father: {fileID: 4402144810473256}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4627392316691604
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1720786229012536}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.02974999, y: 0, z: 0}
+ m_LocalScale: {x: 0.005, y: 0.005000006, z: 0.005000005}
+ m_Children: []
+ m_Father: {fileID: 4402144810473256}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!4 &4781408151868912
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1098505392087678}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.005}
+ m_LocalScale: {x: 0.043945312, y: 0.043945312, z: 0.0073242188}
+ m_Children: []
+ m_Father: {fileID: 4402144810473256}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4858878450608414
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1645441935900780}
+ m_LocalRotation: {x: 0.27059805, y: -0.6532815, z: -0.6532815, w: 0.27059805}
+ m_LocalPosition: {x: 0, y: 0, z: -0.005}
+ m_LocalScale: {x: 0.25, y: 0.25, z: 0.25}
+ m_Children: []
+ m_Father: {fileID: 4402144810473256}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: -45, y: -90, z: -90}
+--- !u!23 &23038202191139816
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1720786229012536}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23444226779442190
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1495934348724120}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 02183eecee283e647b4e8660f71bb271, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23496164554082634
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1750987048839070}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 02183eecee283e647b4e8660f71bb271, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23589133403261092
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1098505392087678}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 970c8a6564852574f9ba8959ffcd47f8, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23661315812672838
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1767278312977966}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 471cd2931ade3d147b640131e71d9ad9, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23929879725500384
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1645441935900780}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 02183eecee283e647b4e8660f71bb271, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33275854933592506
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1495934348724120}
+ m_Mesh: {fileID: 4300008, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33415806475787660
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1645441935900780}
+ m_Mesh: {fileID: 4300010, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33641935424540274
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1098505392087678}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33653120745121860
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1767278312977966}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33728591499608816
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1750987048839070}
+ m_Mesh: {fileID: 4300014, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!65 &65203283302196396
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1098505392087678}
+ 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!65 &65394494458541452
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1775492867674862}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.22, y: 0.05, z: 0.025}
+ m_Center: {x: 0.08, y: 0, z: 0}
+--- !u!65 &65527622757459022
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1767278312977966}
+ 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!102 &102667059822850586
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1720786229012536}
+ m_Text: CheckBox
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 3
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4292335575
+--- !u!114 &114302202869515260
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1767278312977966}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4781408151868912}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -20, y: -20, z: 0}
+ OnlyInEditMode: 1
+--- !u!114 &114359879210576386
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1775492867674862}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 2
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1098505392087678}
+ Themes:
+ - {fileID: 11400000, guid: 5753d89c205814542ba3fef191dc4682, type: 2}
+ - {fileID: 11400000, guid: 25fd4afc60b411a4899da8c48e287906, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1767278312977966}
+ Themes:
+ - {fileID: 11400000, guid: 6c08928bdf950d54390c1346d23d422b, type: 2}
+ - {fileID: 11400000, guid: cb5abaa7279811d409e5bac06ad02a1f, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1720786229012536}
+ Themes:
+ - {fileID: 11400000, guid: 0eea8a8be0e42494083a2dc52fab717f, type: 2}
+ - {fileID: 11400000, guid: 077f50c510dd803449e2247b7fbe3122, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1645441935900780}
+ Themes:
+ - {fileID: 11400000, guid: c5fe122d2d821434894bbf06f71057d3, type: 2}
+ - {fileID: 11400000, guid: dae413b1fffbbf841ae1176deb55d3c0, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!114 &114604455477286672
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1098505392087678}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 18715f9b6e2e86c42902a892a35010dc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ ItemSize: {x: 90, y: 90, z: 15}
+ OnlyInEditMode: 1
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/CheckBox.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/CheckBox.prefab.meta
new file mode 100644
index 00000000000..db12b113b95
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/CheckBox.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: abb2df850d68f894d830c95c299cf10f
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButton.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButton.prefab
new file mode 100644
index 00000000000..1988a6640c9
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButton.prefab
@@ -0,0 +1,618 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1210820392543280}
+ m_IsPrefabParent: 1
+--- !u!1 &1056657411167678
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 224737072971358154}
+ - component: {fileID: 23366652843726552}
+ - component: {fileID: 33206966778645120}
+ - component: {fileID: 222506943885609692}
+ - component: {fileID: 114575116837749478}
+ m_Layer: 0
+ m_Name: TextMeshPro
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1078241679539432
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4257994434125286}
+ m_Layer: 5
+ m_Name: SeeItSayItLabel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1185804096758482
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4503932811191454}
+ - component: {fileID: 33852099665510318}
+ - component: {fileID: 23328387927548302}
+ m_Layer: 5
+ m_Name: UIButtonSquareIcon
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1210820392543280
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4249060311757736}
+ - component: {fileID: 65091470401894616}
+ - component: {fileID: 114809329666163580}
+ m_Layer: 5
+ m_Name: HolographicButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1264397046495974
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4420343095424302}
+ - component: {fileID: 33939777675215638}
+ - component: {fileID: 23891613043013534}
+ m_Layer: 0
+ m_Name: BackPlate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1447780916617028
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4165797710622800}
+ - component: {fileID: 33183056751404668}
+ - component: {fileID: 23614520705590048}
+ m_Layer: 0
+ m_Name: FrontPlate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1676057836463404
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4469891222133882}
+ - component: {fileID: 33251067709024942}
+ - component: {fileID: 23637783586042108}
+ m_Layer: 0
+ m_Name: BackPlate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4165797710622800
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1447780916617028}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.00027746707, z: -0.0103}
+ m_LocalScale: {x: 0.12, y: 0.12, z: 0.01}
+ m_Children: []
+ m_Father: {fileID: 4249060311757736}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4249060311757736
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1210820392543280}
+ 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: 4420343095424302}
+ - {fileID: 4165797710622800}
+ - {fileID: 4503932811191454}
+ - {fileID: 4257994434125286}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4257994434125286
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1078241679539432}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.0157, z: -0.0112}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 224737072971358154}
+ - {fileID: 4469891222133882}
+ m_Father: {fileID: 4249060311757736}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4420343095424302
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1264397046495974}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.00027746707, z: 0}
+ m_LocalScale: {x: 0.12, y: 0.12, z: 0.01}
+ m_Children: []
+ m_Father: {fileID: 4249060311757736}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4469891222133882
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1676057836463404}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.03904, z: -0.025900006}
+ m_LocalScale: {x: 0.107539825, y: 0.032499358, z: 0.003}
+ m_Children: []
+ m_Father: {fileID: 4257994434125286}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4503932811191454
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1185804096758482}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.0014, z: -0.015822735}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4249060311757736}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23328387927548302
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1185804096758482}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: fa419ab56051229449e3b813df8f295f, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23366652843726552
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1056657411167678}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23614520705590048
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1447780916617028}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 2
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 1c018e76b2657e041976bfa8486880aa, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23637783586042108
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1676057836463404}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 2
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: df4abdb025f6c11489a7f77f9fba8659, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23891613043013534
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1264397046495974}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 2
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: df4abdb025f6c11489a7f77f9fba8659, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33183056751404668
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1447780916617028}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33206966778645120
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1056657411167678}
+ m_Mesh: {fileID: 0}
+--- !u!33 &33251067709024942
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1676057836463404}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33852099665510318
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1185804096758482}
+ m_Mesh: {fileID: 4300010, guid: b566bbce04d66f4428421e81a3af0299, type: 3}
+--- !u!33 &33939777675215638
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1264397046495974}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65091470401894616
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1210820392543280}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.12, y: 0.12, z: 0.02}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &114575116837749478
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1056657411167678}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, 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_text: Say "Button"
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_outlineColor:
+ serializedVersion: 2
+ rgba: 4278190080
+ m_fontSize: 0.13
+ m_fontSizeBase: 0.13
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_textAlignment: 514
+ m_isAlignmentEnumConverted: 1
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_firstOverflowCharacterIndex: -1
+ m_linkedTextComponent: {fileID: 0}
+ m_isLinkedTextComponent: 0
+ m_isTextTruncated: 0
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 0
+ m_isCullingEnabled: 0
+ m_ignoreRectMaskCulling: 0
+ m_ignoreCulling: 1
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_firstVisibleCharacter: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
+ m_textInfo:
+ textComponent: {fileID: 114575116837749478}
+ characterCount: 12
+ spriteCount: 0
+ spaceCount: 1
+ wordCount: 2
+ linkCount: 0
+ lineCount: 1
+ pageCount: 1
+ materialCount: 1
+ m_havePropertiesChanged: 0
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_spriteAnimator: {fileID: 0}
+ m_isInputParsingRequired: 0
+ m_inputSource: 0
+ m_hasFontAssetChanged: 0
+ m_renderer: {fileID: 23366652843726552}
+ m_subTextObjects:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ m_maskType: 0
+--- !u!114 &114809329666163580
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1210820392543280}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 1
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1264397046495974}
+ Themes:
+ - {fileID: 11400000, guid: d37afabc007bf774d9431b9a7cbe6fba, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1447780916617028}
+ Themes:
+ - {fileID: 11400000, guid: cbde7890146c3024d928b7afc2e16065, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1078241679539432}
+ Themes:
+ - {fileID: 11400000, guid: 0c4c73f326f602744bdcfff481fd6f20, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!222 &222506943885609692
+CanvasRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1056657411167678}
+--- !u!224 &224737072971358154
+RectTransform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1056657411167678}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.0306}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4257994434125286}
+ 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.00034, y: -0.03873}
+ m_SizeDelta: {x: 20, y: 5}
+ m_Pivot: {x: 0.5, y: 0.5}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButton.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButton.prefab.meta
new file mode 100644
index 00000000000..4ccb3a23ca5
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButton.prefab.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 40da8a1b3b26ba743b892d890b95a9f9
+timeCreated: 1519322244
+licenseType: Free
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButtonToggle.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButtonToggle.prefab
new file mode 100644
index 00000000000..2e0e8d9558c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButtonToggle.prefab
@@ -0,0 +1,621 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1107482477660006}
+ m_IsPrefabParent: 1
+--- !u!1 &1107482477660006
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4852819729683114}
+ - component: {fileID: 65155074209115082}
+ - component: {fileID: 114856665817931228}
+ m_Layer: 5
+ m_Name: HolographicButtonToggle
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1210628502256192
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 224756769914577510}
+ - component: {fileID: 23859773054077766}
+ - component: {fileID: 33411799682539724}
+ - component: {fileID: 222482900338425014}
+ - component: {fileID: 114293819691004426}
+ m_Layer: 0
+ m_Name: TextMeshPro
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1324908095779744
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4391902128074524}
+ - component: {fileID: 33363749308810454}
+ - component: {fileID: 23756887827218384}
+ m_Layer: 5
+ m_Name: UIButtonSquareIcon
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1391235132048104
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4547374579776232}
+ - component: {fileID: 33748067954246100}
+ - component: {fileID: 23684444748209922}
+ m_Layer: 0
+ m_Name: BackPlate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1687922239424002
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4010832588203214}
+ m_Layer: 5
+ m_Name: SeeItSayItLabel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1729569338548398
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4711648706694572}
+ - component: {fileID: 33871035123459390}
+ - component: {fileID: 23232249014457786}
+ m_Layer: 0
+ m_Name: BackPlate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1925978215027266
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4678865536261668}
+ - component: {fileID: 33947682782068674}
+ - component: {fileID: 23354682799087526}
+ m_Layer: 0
+ m_Name: FrontPlate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4010832588203214
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1687922239424002}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.0157, z: -0.0112}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 224756769914577510}
+ - {fileID: 4711648706694572}
+ m_Father: {fileID: 4852819729683114}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4391902128074524
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1324908095779744}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.0014, z: -0.015822735}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4852819729683114}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4547374579776232
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1391235132048104}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.00027746707, z: 0}
+ m_LocalScale: {x: 0.12, y: 0.12, z: 0.01}
+ m_Children: []
+ m_Father: {fileID: 4852819729683114}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4678865536261668
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1925978215027266}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.00027746707, z: -0.0103}
+ m_LocalScale: {x: 0.12, y: 0.12, z: 0.01}
+ m_Children: []
+ m_Father: {fileID: 4852819729683114}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4711648706694572
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1729569338548398}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.03904, z: -0.025900006}
+ m_LocalScale: {x: 0.107539825, y: 0.032499358, z: 0.003}
+ m_Children: []
+ m_Father: {fileID: 4010832588203214}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4852819729683114
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1107482477660006}
+ 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: 4547374579776232}
+ - {fileID: 4678865536261668}
+ - {fileID: 4391902128074524}
+ - {fileID: 4010832588203214}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23232249014457786
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1729569338548398}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 2
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: df4abdb025f6c11489a7f77f9fba8659, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23354682799087526
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1925978215027266}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 2
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 1c018e76b2657e041976bfa8486880aa, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23684444748209922
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1391235132048104}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 2
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: df4abdb025f6c11489a7f77f9fba8659, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23756887827218384
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1324908095779744}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: fa419ab56051229449e3b813df8f295f, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23859773054077766
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1210628502256192}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33363749308810454
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1324908095779744}
+ m_Mesh: {fileID: 4300010, guid: b566bbce04d66f4428421e81a3af0299, type: 3}
+--- !u!33 &33411799682539724
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1210628502256192}
+ m_Mesh: {fileID: 0}
+--- !u!33 &33748067954246100
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1391235132048104}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33871035123459390
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1729569338548398}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33947682782068674
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1925978215027266}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65155074209115082
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1107482477660006}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.12, y: 0.12, z: 0.02}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &114293819691004426
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1210628502256192}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, 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_text: Say "Button"
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_outlineColor:
+ serializedVersion: 2
+ rgba: 4278190080
+ m_fontSize: 0.13
+ m_fontSizeBase: 0.13
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_textAlignment: 514
+ m_isAlignmentEnumConverted: 1
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_firstOverflowCharacterIndex: -1
+ m_linkedTextComponent: {fileID: 0}
+ m_isLinkedTextComponent: 0
+ m_isTextTruncated: 0
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 0
+ m_isCullingEnabled: 0
+ m_ignoreRectMaskCulling: 0
+ m_ignoreCulling: 1
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_firstVisibleCharacter: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
+ m_textInfo:
+ textComponent: {fileID: 114293819691004426}
+ characterCount: 12
+ spriteCount: 0
+ spaceCount: 1
+ wordCount: 2
+ linkCount: 0
+ lineCount: 1
+ pageCount: 1
+ materialCount: 1
+ m_havePropertiesChanged: 0
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_spriteAnimator: {fileID: 0}
+ m_isInputParsingRequired: 0
+ m_inputSource: 0
+ m_hasFontAssetChanged: 0
+ m_renderer: {fileID: 23859773054077766}
+ m_subTextObjects:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ m_maskType: 0
+--- !u!114 &114856665817931228
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1107482477660006}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 2
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand: Button
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1391235132048104}
+ Themes:
+ - {fileID: 11400000, guid: d37afabc007bf774d9431b9a7cbe6fba, type: 2}
+ - {fileID: 11400000, guid: 29b20ecfcc16eef4dad8989c360f2988, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1925978215027266}
+ Themes:
+ - {fileID: 11400000, guid: cbde7890146c3024d928b7afc2e16065, type: 2}
+ - {fileID: 11400000, guid: cbde7890146c3024d928b7afc2e16065, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1687922239424002}
+ Themes:
+ - {fileID: 11400000, guid: 0c4c73f326f602744bdcfff481fd6f20, type: 2}
+ - {fileID: 11400000, guid: 0c4c73f326f602744bdcfff481fd6f20, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!222 &222482900338425014
+CanvasRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1210628502256192}
+--- !u!224 &224756769914577510
+RectTransform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1210628502256192}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.0306}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4010832588203214}
+ 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.00034, y: -0.03873}
+ m_SizeDelta: {x: 20, y: 5}
+ m_Pivot: {x: 0.5, y: 0.5}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButtonToggle.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButtonToggle.prefab.meta
new file mode 100644
index 00000000000..82227af1d61
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/HolographicButtonToggle.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4b1ffbebacd36694ebea9fb6d437c68f
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Radial.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Radial.prefab
new file mode 100644
index 00000000000..7a8f4b9de4f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Radial.prefab
@@ -0,0 +1,490 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1713162523614900}
+ m_IsPrefabParent: 1
+--- !u!1 &1288968954740874
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4365436646944498}
+ m_Layer: 0
+ m_Name: ButtonContent
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1327578543216396
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4787483091430914}
+ - component: {fileID: 33685308013415260}
+ - component: {fileID: 23039934230010406}
+ - component: {fileID: 114405088873218448}
+ m_Layer: 0
+ m_Name: Dot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1713162523614900
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4441371295092974}
+ - component: {fileID: 65692809266063692}
+ - component: {fileID: 114690070015698324}
+ m_Layer: 0
+ m_Name: Radial
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1755392810012658
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4783109029004248}
+ - component: {fileID: 33390767600076298}
+ - component: {fileID: 23068973427680556}
+ - component: {fileID: 114012021527990708}
+ m_Layer: 0
+ m_Name: Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1907880130429706
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4179473987106294}
+ - component: {fileID: 33473680374708396}
+ - component: {fileID: 23198126506687558}
+ - component: {fileID: 114030733554660068}
+ m_Layer: 0
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1996318768736680
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4302427971908432}
+ - component: {fileID: 23206874717513354}
+ - component: {fileID: 102607888280148914}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4179473987106294
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1907880130429706}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.005}
+ m_LocalScale: {x: 0.34179688, y: 0.34179688, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4365436646944498}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4302427971908432
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1996318768736680}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.03150004, y: 0, z: 0}
+ m_LocalScale: {x: 0.005, y: 0.0050000036, z: 0.0050000027}
+ m_Children: []
+ m_Father: {fileID: 4365436646944498}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!4 &4365436646944498
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1288968954740874}
+ 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: 4302427971908432}
+ - {fileID: 4179473987106294}
+ - {fileID: 4783109029004248}
+ - {fileID: 4787483091430914}
+ m_Father: {fileID: 4441371295092974}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4441371295092974
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1713162523614900}
+ 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: 4365436646944498}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4783109029004248
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1755392810012658}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.2685547, y: 0.2685547, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4365436646944498}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4787483091430914
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1327578543216396}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.005}
+ m_LocalScale: {x: 0.09765625, y: 0.09765625, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4365436646944498}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23039934230010406
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1327578543216396}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 02183eecee283e647b4e8660f71bb271, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23068973427680556
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1755392810012658}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 471cd2931ade3d147b640131e71d9ad9, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23198126506687558
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1907880130429706}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 970c8a6564852574f9ba8959ffcd47f8, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23206874717513354
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1996318768736680}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33390767600076298
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1755392810012658}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33473680374708396
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1907880130429706}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33685308013415260
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1327578543216396}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!65 &65692809266063692
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1713162523614900}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.22, y: 0.05, z: 0.025}
+ m_Center: {x: 0.08, y: 0, z: 0}
+--- !u!102 &102607888280148914
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1996318768736680}
+ m_Text: RadialButton
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 3
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: 86574c70442309b45be5a1c37a37a40b, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4292335575
+--- !u!114 &114012021527990708
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1755392810012658}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4179473987106294}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -150, y: -150, z: 0}
+ OnlyInEditMode: 1
+--- !u!114 &114030733554660068
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1907880130429706}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 18715f9b6e2e86c42902a892a35010dc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ ItemSize: {x: 700, y: 700, z: 500}
+ OnlyInEditMode: 1
+--- !u!114 &114405088873218448
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1327578543216396}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4179473987106294}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -500, y: -500, z: 0}
+ OnlyInEditMode: 1
+--- !u!114 &114690070015698324
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1713162523614900}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 2
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1907880130429706}
+ Themes:
+ - {fileID: 11400000, guid: 5753d89c205814542ba3fef191dc4682, type: 2}
+ - {fileID: 11400000, guid: 25fd4afc60b411a4899da8c48e287906, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1755392810012658}
+ Themes:
+ - {fileID: 11400000, guid: 6c08928bdf950d54390c1346d23d422b, type: 2}
+ - {fileID: 11400000, guid: cb5abaa7279811d409e5bac06ad02a1f, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1996318768736680}
+ Themes:
+ - {fileID: 11400000, guid: 0eea8a8be0e42494083a2dc52fab717f, type: 2}
+ - {fileID: 11400000, guid: 077f50c510dd803449e2247b7fbe3122, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1327578543216396}
+ Themes:
+ - {fileID: 11400000, guid: c5fe122d2d821434894bbf06f71057d3, type: 2}
+ - {fileID: 11400000, guid: dae413b1fffbbf841ae1176deb55d3c0, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Radial.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Radial.prefab.meta
new file mode 100644
index 00000000000..52e6019b757
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Radial.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7a09758e059eb59468ca9b69ac560cd9
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/RadialSet.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/RadialSet.prefab
new file mode 100644
index 00000000000..2d31dfbe0d3
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/RadialSet.prefab
@@ -0,0 +1,1497 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1856622667495492}
+ m_IsPrefabParent: 1
+--- !u!1 &1036220935859626
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4498792646055616}
+ - component: {fileID: 33612332569445068}
+ - component: {fileID: 23478870251386834}
+ - component: {fileID: 114449448570466402}
+ m_Layer: 0
+ m_Name: Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1046143521135576
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4128609104152444}
+ - component: {fileID: 33629270549943170}
+ - component: {fileID: 23529417614970466}
+ - component: {fileID: 114444584393320186}
+ m_Layer: 0
+ m_Name: Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1054774868291492
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4847774398274440}
+ - component: {fileID: 23826616375438668}
+ - component: {fileID: 102741463006760918}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1125011747071552
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4039300547343950}
+ - component: {fileID: 33382437760520770}
+ - component: {fileID: 23934557266937184}
+ - component: {fileID: 114274573459176476}
+ m_Layer: 0
+ m_Name: Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1248210251507844
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4062735191839930}
+ m_Layer: 0
+ m_Name: ButtonContent
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1285187314504466
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4385557203199492}
+ - component: {fileID: 33549316980938452}
+ - component: {fileID: 23900630428102612}
+ - component: {fileID: 114904851918543228}
+ m_Layer: 0
+ m_Name: Dot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1301037372891736
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4417578656984056}
+ - component: {fileID: 33003255011325444}
+ - component: {fileID: 23193427373388880}
+ - component: {fileID: 114164912295568314}
+ m_Layer: 0
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1396014649234296
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4647876641913000}
+ m_Layer: 0
+ m_Name: ButtonContent
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1451676569574848
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4868521844009230}
+ - component: {fileID: 33217288588886140}
+ - component: {fileID: 23613526893777652}
+ - component: {fileID: 114008923228833042}
+ m_Layer: 0
+ m_Name: Dot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1555211353607136
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4653581019401118}
+ - component: {fileID: 33821142072174868}
+ - component: {fileID: 23916007660781850}
+ - component: {fileID: 114824864212426710}
+ m_Layer: 0
+ m_Name: Dot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1563572027337304
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4670100275137830}
+ - component: {fileID: 65613013962320470}
+ - component: {fileID: 114560737601403782}
+ m_Layer: 0
+ m_Name: Radial (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1695999621761422
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4153068939576982}
+ - component: {fileID: 65735667765749806}
+ - component: {fileID: 114200093395354822}
+ m_Layer: 0
+ m_Name: Radial (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1698597023288528
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4228330118182740}
+ - component: {fileID: 23786972114772960}
+ - component: {fileID: 102888677059595956}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1791457084802870
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4193987172810734}
+ - component: {fileID: 23694892559024444}
+ - component: {fileID: 102355601117475586}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1819661643076908
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4204519244856280}
+ - component: {fileID: 65959922074838590}
+ - component: {fileID: 114214013505314002}
+ m_Layer: 0
+ m_Name: Radial (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1842973494018042
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4891684840272184}
+ - component: {fileID: 33828830408101482}
+ - component: {fileID: 23561516995102276}
+ - component: {fileID: 114311822256676912}
+ m_Layer: 0
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1856622667495492
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4894033903586032}
+ - component: {fileID: 114437542460993462}
+ m_Layer: 0
+ m_Name: RadialSet
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1902042423272936
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4432073617162062}
+ m_Layer: 0
+ m_Name: ButtonContent
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1903041749280706
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4610967451646196}
+ - component: {fileID: 33630129146270250}
+ - component: {fileID: 23028649312369616}
+ - component: {fileID: 114474189900081526}
+ m_Layer: 0
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4039300547343950
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1125011747071552}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.2685547, y: 0.2685547, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4062735191839930}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4062735191839930
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1248210251507844}
+ 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: 4847774398274440}
+ - {fileID: 4417578656984056}
+ - {fileID: 4039300547343950}
+ - {fileID: 4385557203199492}
+ m_Father: {fileID: 4670100275137830}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4128609104152444
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1046143521135576}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.2685547, y: 0.2685547, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4647876641913000}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4153068939576982
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1695999621761422}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.072, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4647876641913000}
+ m_Father: {fileID: 4894033903586032}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4193987172810734
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1791457084802870}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.03150004, y: 0, z: 0}
+ m_LocalScale: {x: 0.005, y: 0.0050000036, z: 0.0050000027}
+ m_Children: []
+ m_Father: {fileID: 4432073617162062}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!4 &4204519244856280
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1819661643076908}
+ 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: 4432073617162062}
+ m_Father: {fileID: 4894033903586032}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4228330118182740
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1698597023288528}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.03150004, y: 0, z: 0}
+ m_LocalScale: {x: 0.005, y: 0.0050000036, z: 0.0050000027}
+ m_Children: []
+ m_Father: {fileID: 4647876641913000}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!4 &4385557203199492
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1285187314504466}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.005}
+ m_LocalScale: {x: 0.09765625, y: 0.09765625, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4062735191839930}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4417578656984056
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1301037372891736}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.005}
+ m_LocalScale: {x: 0.34179688, y: 0.34179688, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4062735191839930}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4432073617162062
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1902042423272936}
+ 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: 4193987172810734}
+ - {fileID: 4610967451646196}
+ - {fileID: 4498792646055616}
+ - {fileID: 4868521844009230}
+ m_Father: {fileID: 4204519244856280}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4498792646055616
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1036220935859626}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.2685547, y: 0.2685547, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4432073617162062}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4610967451646196
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1903041749280706}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.005}
+ m_LocalScale: {x: 0.34179688, y: 0.34179688, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4432073617162062}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4647876641913000
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1396014649234296}
+ 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: 4228330118182740}
+ - {fileID: 4891684840272184}
+ - {fileID: 4128609104152444}
+ - {fileID: 4653581019401118}
+ m_Father: {fileID: 4153068939576982}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4653581019401118
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1555211353607136}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.005}
+ m_LocalScale: {x: 0.09765625, y: 0.09765625, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4647876641913000}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4670100275137830
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1563572027337304}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.1406, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4062735191839930}
+ m_Father: {fileID: 4894033903586032}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4847774398274440
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1054774868291492}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.03150004, y: 0, z: 0}
+ m_LocalScale: {x: 0.005, y: 0.0050000036, z: 0.0050000027}
+ m_Children: []
+ m_Father: {fileID: 4062735191839930}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!4 &4868521844009230
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1451676569574848}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.005}
+ m_LocalScale: {x: 0.09765625, y: 0.09765625, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4432073617162062}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4891684840272184
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1842973494018042}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.005}
+ m_LocalScale: {x: 0.34179688, y: 0.34179688, z: 0.24414062}
+ m_Children: []
+ m_Father: {fileID: 4647876641913000}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4894033903586032
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1856622667495492}
+ 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: 4204519244856280}
+ - {fileID: 4153068939576982}
+ - {fileID: 4670100275137830}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23028649312369616
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1903041749280706}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 970c8a6564852574f9ba8959ffcd47f8, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23193427373388880
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1301037372891736}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 970c8a6564852574f9ba8959ffcd47f8, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23478870251386834
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1036220935859626}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 471cd2931ade3d147b640131e71d9ad9, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23529417614970466
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1046143521135576}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 471cd2931ade3d147b640131e71d9ad9, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23561516995102276
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1842973494018042}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 970c8a6564852574f9ba8959ffcd47f8, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23613526893777652
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1451676569574848}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 02183eecee283e647b4e8660f71bb271, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23694892559024444
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1791457084802870}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23786972114772960
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1698597023288528}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23826616375438668
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1054774868291492}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23900630428102612
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1285187314504466}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 02183eecee283e647b4e8660f71bb271, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23916007660781850
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1555211353607136}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 02183eecee283e647b4e8660f71bb271, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23934557266937184
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1125011747071552}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 471cd2931ade3d147b640131e71d9ad9, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33003255011325444
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1301037372891736}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33217288588886140
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1451676569574848}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33382437760520770
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1125011747071552}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33549316980938452
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1285187314504466}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33612332569445068
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1036220935859626}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33629270549943170
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1046143521135576}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33630129146270250
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1903041749280706}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33821142072174868
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1555211353607136}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33828830408101482
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1842973494018042}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!65 &65613013962320470
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1563572027337304}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.22, y: 0.05, z: 0.025}
+ m_Center: {x: 0.08, y: 0, z: 0}
+--- !u!65 &65735667765749806
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1695999621761422}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.22, y: 0.05, z: 0.025}
+ m_Center: {x: 0.08, y: 0, z: 0}
+--- !u!65 &65959922074838590
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1819661643076908}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.22, y: 0.05, z: 0.025}
+ m_Center: {x: 0.08, y: 0, z: 0}
+--- !u!102 &102355601117475586
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1791457084802870}
+ m_Text: RadialButton 1
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 3
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4292335575
+--- !u!102 &102741463006760918
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1054774868291492}
+ m_Text: RadialButton 3
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 3
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4292335575
+--- !u!102 &102888677059595956
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1698597023288528}
+ m_Text: RadialButton 2
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 3
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4292335575
+--- !u!114 &114008923228833042
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1451676569574848}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4610967451646196}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -500, y: -500, z: 0}
+ OnlyInEditMode: 1
+--- !u!114 &114164912295568314
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1301037372891736}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 18715f9b6e2e86c42902a892a35010dc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ ItemSize: {x: 700, y: 700, z: 500}
+ OnlyInEditMode: 1
+--- !u!114 &114200093395354822
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1695999621761422}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 2
+ CanSelect: 1
+ CanDeselect: 0
+ VoiceCommand: Radial Two
+ RequiresGaze: 0
+ Profiles:
+ - Target: {fileID: 1842973494018042}
+ Themes:
+ - {fileID: 11400000, guid: 5753d89c205814542ba3fef191dc4682, type: 2}
+ - {fileID: 11400000, guid: 25fd4afc60b411a4899da8c48e287906, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1046143521135576}
+ Themes:
+ - {fileID: 11400000, guid: 6c08928bdf950d54390c1346d23d422b, type: 2}
+ - {fileID: 11400000, guid: cb5abaa7279811d409e5bac06ad02a1f, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1698597023288528}
+ Themes:
+ - {fileID: 11400000, guid: 0eea8a8be0e42494083a2dc52fab717f, type: 2}
+ - {fileID: 11400000, guid: 077f50c510dd803449e2247b7fbe3122, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1555211353607136}
+ Themes:
+ - {fileID: 11400000, guid: c5fe122d2d821434894bbf06f71057d3, type: 2}
+ - {fileID: 11400000, guid: dae413b1fffbbf841ae1176deb55d3c0, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!114 &114214013505314002
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1819661643076908}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 2
+ CanSelect: 1
+ CanDeselect: 0
+ VoiceCommand: Radial One
+ RequiresGaze: 0
+ Profiles:
+ - Target: {fileID: 1903041749280706}
+ Themes:
+ - {fileID: 11400000, guid: 5753d89c205814542ba3fef191dc4682, type: 2}
+ - {fileID: 11400000, guid: 25fd4afc60b411a4899da8c48e287906, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1036220935859626}
+ Themes:
+ - {fileID: 11400000, guid: 6c08928bdf950d54390c1346d23d422b, type: 2}
+ - {fileID: 11400000, guid: cb5abaa7279811d409e5bac06ad02a1f, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1791457084802870}
+ Themes:
+ - {fileID: 11400000, guid: 0eea8a8be0e42494083a2dc52fab717f, type: 2}
+ - {fileID: 11400000, guid: 077f50c510dd803449e2247b7fbe3122, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1451676569574848}
+ Themes:
+ - {fileID: 11400000, guid: c5fe122d2d821434894bbf06f71057d3, type: 2}
+ - {fileID: 11400000, guid: dae413b1fffbbf841ae1176deb55d3c0, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!114 &114274573459176476
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1125011747071552}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4417578656984056}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -150, y: -150, z: 0}
+ OnlyInEditMode: 1
+--- !u!114 &114311822256676912
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1842973494018042}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 18715f9b6e2e86c42902a892a35010dc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ ItemSize: {x: 700, y: 700, z: 500}
+ OnlyInEditMode: 1
+--- !u!114 &114437542460993462
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1856622667495492}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8adeb8b21c6d120408d0aea984f6b26d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ ToggleList:
+ - {fileID: 114214013505314002}
+ - {fileID: 114200093395354822}
+ - {fileID: 114560737601403782}
+ CurrentIndex: 0
+ OnSelectionEvents:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+--- !u!114 &114444584393320186
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1046143521135576}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4891684840272184}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -150, y: -150, z: 0}
+ OnlyInEditMode: 1
+--- !u!114 &114449448570466402
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1036220935859626}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4610967451646196}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -150, y: -150, z: 0}
+ OnlyInEditMode: 1
+--- !u!114 &114474189900081526
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1903041749280706}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 18715f9b6e2e86c42902a892a35010dc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ ItemSize: {x: 700, y: 700, z: 500}
+ OnlyInEditMode: 1
+--- !u!114 &114560737601403782
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1563572027337304}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 2
+ CanSelect: 1
+ CanDeselect: 0
+ VoiceCommand: Radial Three
+ RequiresGaze: 0
+ Profiles:
+ - Target: {fileID: 1301037372891736}
+ Themes:
+ - {fileID: 11400000, guid: 5753d89c205814542ba3fef191dc4682, type: 2}
+ - {fileID: 11400000, guid: 25fd4afc60b411a4899da8c48e287906, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1125011747071552}
+ Themes:
+ - {fileID: 11400000, guid: 6c08928bdf950d54390c1346d23d422b, type: 2}
+ - {fileID: 11400000, guid: cb5abaa7279811d409e5bac06ad02a1f, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1054774868291492}
+ Themes:
+ - {fileID: 11400000, guid: 0eea8a8be0e42494083a2dc52fab717f, type: 2}
+ - {fileID: 11400000, guid: 077f50c510dd803449e2247b7fbe3122, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1285187314504466}
+ Themes:
+ - {fileID: 11400000, guid: c5fe122d2d821434894bbf06f71057d3, type: 2}
+ - {fileID: 11400000, guid: dae413b1fffbbf841ae1176deb55d3c0, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!114 &114824864212426710
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1555211353607136}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4891684840272184}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -500, y: -500, z: 0}
+ OnlyInEditMode: 1
+--- !u!114 &114904851918543228
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1285187314504466}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4417578656984056}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: -500, y: -500, z: 0}
+ OnlyInEditMode: 1
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/RadialSet.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/RadialSet.prefab.meta
new file mode 100644
index 00000000000..43a6d562f88
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/RadialSet.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8b83134143223104c9bc3865a565cab3
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/SimpleButton.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/SimpleButton.prefab
new file mode 100644
index 00000000000..125a19dedf8
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/SimpleButton.prefab
@@ -0,0 +1,250 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1284212102718890}
+ m_IsPrefabParent: 1
+--- !u!1 &1170112908696466
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4744437910150932}
+ - component: {fileID: 33275856115967032}
+ - component: {fileID: 23607015926866058}
+ - component: {fileID: 65452711370579434}
+ m_Layer: 0
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1284212102718890
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4951315836615182}
+ - component: {fileID: 114557943694380720}
+ m_Layer: 0
+ m_Name: SimpleButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1790360590789510
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4712101910704920}
+ - component: {fileID: 23461168107365922}
+ - component: {fileID: 102609536747261144}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4712101910704920
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1790360590789510}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.006}
+ m_LocalScale: {x: 0.005, y: 0.005, z: 0.005}
+ m_Children: []
+ m_Father: {fileID: 4951315836615182}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!4 &4744437910150932
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1170112908696466}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.1, y: 0.1, z: 0.01}
+ m_Children: []
+ m_Father: {fileID: 4951315836615182}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4951315836615182
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1284212102718890}
+ 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: 4744437910150932}
+ - {fileID: 4712101910704920}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23461168107365922
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1790360590789510}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23607015926866058
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1170112908696466}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 11a74654c6e973049993e13dd7e9733f, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33275856115967032
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1170112908696466}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65452711370579434
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1170112908696466}
+ 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!102 &102609536747261144
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1790360590789510}
+ m_Text: OK
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 1
+ m_TabSize: 4
+ m_FontSize: 38
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4293322470
+--- !u!114 &114557943694380720
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1284212102718890}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 1
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1170112908696466}
+ Themes:
+ - {fileID: 11400000, guid: 34927bf1a1259e141a45f1dedff98d7f, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/SimpleButton.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/SimpleButton.prefab.meta
new file mode 100644
index 00000000000..2c4b84c7a5c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/SimpleButton.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f75829242875c1c4ca4ea5a5e7a6a742
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Toggle.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Toggle.prefab
new file mode 100644
index 00000000000..473420f5a1f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Toggle.prefab
@@ -0,0 +1,441 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1850867357197028}
+ m_IsPrefabParent: 1
+--- !u!1 &1154866262212832
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4948195924566534}
+ - component: {fileID: 33709230853127302}
+ - component: {fileID: 23948125221770110}
+ m_Layer: 0
+ m_Name: Dot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1184366718457058
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4342218283175970}
+ - component: {fileID: 33686093196321662}
+ - component: {fileID: 23107482921913324}
+ m_Layer: 0
+ m_Name: ToggleButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1452929679037900
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4704573713465032}
+ - component: {fileID: 33009986628730542}
+ - component: {fileID: 23038249234850652}
+ m_Layer: 0
+ m_Name: ToggleBackground
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1491894523937538
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4810659548472064}
+ - component: {fileID: 23524926626777716}
+ - component: {fileID: 102895803057417886}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1850867357197028
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4938574377845388}
+ - component: {fileID: 65620022048249504}
+ - component: {fileID: 114402419347283100}
+ m_Layer: 0
+ m_Name: Toggle
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1935185642534412
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4303610339839266}
+ m_Layer: 0
+ m_Name: ButtonContent
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4303610339839266
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1935185642534412}
+ 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: 4810659548472064}
+ - {fileID: 4704573713465032}
+ - {fileID: 4342218283175970}
+ - {fileID: 4948195924566534}
+ m_Father: {fileID: 4938574377845388}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4342218283175970
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1184366718457058}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.27, y: 0.27, z: 0.27}
+ m_Children: []
+ m_Father: {fileID: 4303610339839266}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4704573713465032
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1452929679037900}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.004999995}
+ m_LocalScale: {x: 0.28, y: 0.28, z: 0.28}
+ m_Children: []
+ m_Father: {fileID: 4303610339839266}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4810659548472064
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1491894523937538}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: -1}
+ m_LocalPosition: {x: 0.0436, y: 0, z: 0}
+ m_LocalScale: {x: 0.005, y: 0.0050000036, z: 0.0050000027}
+ m_Children: []
+ m_Father: {fileID: 4303610339839266}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
+--- !u!4 &4938574377845388
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1850867357197028}
+ 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: 4303610339839266}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4948195924566534
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1154866262212832}
+ m_LocalRotation: {x: 0.00000006657903, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.01, y: 0, z: -0.004999995}
+ m_LocalScale: {x: 0.13, y: 0.13, z: 0.13}
+ m_Children: []
+ m_Father: {fileID: 4303610339839266}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23038249234850652
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1452929679037900}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 970c8a6564852574f9ba8959ffcd47f8, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23107482921913324
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1184366718457058}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 471cd2931ade3d147b640131e71d9ad9, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23524926626777716
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1491894523937538}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23948125221770110
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1154866262212832}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 02183eecee283e647b4e8660f71bb271, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33009986628730542
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1452929679037900}
+ m_Mesh: {fileID: 4300004, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33686093196321662
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1184366718457058}
+ m_Mesh: {fileID: 4300006, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!33 &33709230853127302
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1154866262212832}
+ m_Mesh: {fileID: 4300000, guid: 3d93f7219bba0634a9ee26865f9d6a3c, type: 3}
+--- !u!65 &65620022048249504
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1850867357197028}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.18, y: 0.05, z: 0.025}
+ m_Center: {x: 0.05, y: 0, z: 0}
+--- !u!102 &102895803057417886
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1491894523937538}
+ m_Text: Off
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 3
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4292335575
+--- !u!114 &114402419347283100
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1850867357197028}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 2
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1452929679037900}
+ Themes:
+ - {fileID: 11400000, guid: 5753d89c205814542ba3fef191dc4682, type: 2}
+ - {fileID: 11400000, guid: 25fd4afc60b411a4899da8c48e287906, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1184366718457058}
+ Themes:
+ - {fileID: 11400000, guid: 6c08928bdf950d54390c1346d23d422b, type: 2}
+ - {fileID: 11400000, guid: cb5abaa7279811d409e5bac06ad02a1f, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1154866262212832}
+ Themes:
+ - {fileID: 11400000, guid: 02c718b28bedf814ea16dd51767befc6, type: 2}
+ - {fileID: 11400000, guid: 69ccbccdd82ebc34283000ef061eab28, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1491894523937538}
+ Themes:
+ - {fileID: 11400000, guid: 0eea8a8be0e42494083a2dc52fab717f, type: 2}
+ - {fileID: 11400000, guid: 077f50c510dd803449e2247b7fbe3122, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Toggle.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Toggle.prefab.meta
new file mode 100644
index 00000000000..9011f720c26
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/Toggle.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ce4801a284bc5c3488c631dcdba665df
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/ToggleButton.prefab b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/ToggleButton.prefab
new file mode 100644
index 00000000000..606a4a39b82
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/ToggleButton.prefab
@@ -0,0 +1,874 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 1881066023246956}
+ m_IsPrefabParent: 1
+--- !u!1 &1058005695581158
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4377713256703586}
+ - component: {fileID: 33548128256994372}
+ - component: {fileID: 65083823395553856}
+ - component: {fileID: 23702473510938092}
+ - component: {fileID: 114868511504163272}
+ m_Layer: 0
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1340827229095316
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4802447016311760}
+ - component: {fileID: 33065436917137698}
+ - component: {fileID: 65875745735313914}
+ - component: {fileID: 23486867518579320}
+ - component: {fileID: 114868299459976492}
+ m_Layer: 0
+ m_Name: Right
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1353471469579004
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4394170382473808}
+ - component: {fileID: 33203352155991174}
+ - component: {fileID: 65752405886479572}
+ - component: {fileID: 23218699004104790}
+ - component: {fileID: 114979487542106970}
+ m_Layer: 0
+ m_Name: Left
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1654755775890460
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4429849564245046}
+ m_Layer: 0
+ m_Name: ButtonContent
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1701243716490594
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4226397729588416}
+ - component: {fileID: 33657061140847094}
+ - component: {fileID: 65604673904555102}
+ - component: {fileID: 23441028186990814}
+ - component: {fileID: 114115885122573574}
+ m_Layer: 0
+ m_Name: Bottom
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1731322542945762
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4252580368580698}
+ - component: {fileID: 33538324146524724}
+ - component: {fileID: 65954402972278744}
+ - component: {fileID: 23310066986799668}
+ - component: {fileID: 114602454650795392}
+ m_Layer: 0
+ m_Name: FrontPlate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1835907919169782
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4810821566980424}
+ - component: {fileID: 23329857144203482}
+ - component: {fileID: 102859053046776500}
+ m_Layer: 0
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1881066023246956
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4582855949261192}
+ - component: {fileID: 65451765068380320}
+ - component: {fileID: 114718788154663760}
+ m_Layer: 0
+ m_Name: ToggleButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1915336767748402
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4179942201169962}
+ - component: {fileID: 33113373532832408}
+ - component: {fileID: 65602222999254052}
+ - component: {fileID: 23917807693897754}
+ - component: {fileID: 114382749481769538}
+ m_Layer: 0
+ m_Name: Top
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1 &1968190776631966
+GameObject:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 5
+ m_Component:
+ - component: {fileID: 4542459865956834}
+ m_Layer: 0
+ m_Name: Borders
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4179942201169962
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1915336767748402}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.026855469, z: 0.0049}
+ m_LocalScale: {x: 0.21484375, y: 0.0048828125, z: 0.009765625}
+ m_Children: []
+ m_Father: {fileID: 4542459865956834}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4226397729588416
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1701243716490594}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.026855469, z: 0.0049}
+ m_LocalScale: {x: 0.21484375, y: 0.0048828125, z: 0.009765625}
+ m_Children: []
+ m_Father: {fileID: 4542459865956834}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4252580368580698
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1731322542945762}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.20507812, y: 0.048828125, z: 0.0048828125}
+ m_Children: []
+ m_Father: {fileID: 4429849564245046}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4377713256703586
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1058005695581158}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.0049}
+ m_LocalScale: {x: 0.20507812, y: 0.048828125, z: 0.0048828125}
+ m_Children: []
+ m_Father: {fileID: 4542459865956834}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4394170382473808
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1353471469579004}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.10498047, y: 0, z: 0.0049}
+ m_LocalScale: {x: 0.0048828125, y: 0.05859375, z: 0.009765625}
+ m_Children: []
+ m_Father: {fileID: 4542459865956834}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4429849564245046
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1654755775890460}
+ 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: 4810821566980424}
+ - {fileID: 4252580368580698}
+ - {fileID: 4542459865956834}
+ m_Father: {fileID: 4582855949261192}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4542459865956834
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1968190776631966}
+ 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: 4377713256703586}
+ - {fileID: 4394170382473808}
+ - {fileID: 4802447016311760}
+ - {fileID: 4179942201169962}
+ - {fileID: 4226397729588416}
+ m_Father: {fileID: 4429849564245046}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4582855949261192
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1881066023246956}
+ 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: 4429849564245046}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4802447016311760
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1340827229095316}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.10498047, y: 0, z: 0.0049}
+ m_LocalScale: {x: 0.0048828125, y: 0.05859375, z: 0.009765625}
+ m_Children: []
+ m_Father: {fileID: 4542459865956834}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4810821566980424
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1835907919169782}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.003, z: -0.003}
+ m_LocalScale: {x: 0.005, y: 0.005000004, z: 0.005000003}
+ m_Children: []
+ m_Father: {fileID: 4429849564245046}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!23 &23218699004104790
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1353471469579004}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23310066986799668
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1731322542945762}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 3b3d487d6722afe489a882284f787bbd, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23329857144203482
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1835907919169782}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: 27e8d7c95f97434681887029d5c7a928, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23441028186990814
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1701243716490594}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23486867518579320
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1340827229095316}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23702473510938092
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1058005695581158}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!23 &23917807693897754
+MeshRenderer:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1915336767748402}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RenderingLayerMask: 4294967295
+ m_Materials:
+ - {fileID: 2100000, guid: b861d27e49afd724286961e0f6a1de52, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &33065436917137698
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1340827229095316}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33113373532832408
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1915336767748402}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33203352155991174
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1353471469579004}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33538324146524724
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1731322542945762}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33548128256994372
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1058005695581158}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &33657061140847094
+MeshFilter:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1701243716490594}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65083823395553856
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1058005695581158}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65451765068380320
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1881066023246956}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 0.22007813, y: 0.063828126, z: 0.024882812}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65602222999254052
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1915336767748402}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65604673904555102
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1701243716490594}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65752405886479572
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1353471469579004}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65875745735313914
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1340827229095316}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!65 &65954402972278744
+BoxCollider:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1731322542945762}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!102 &102859053046776500
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1835907919169782}
+ m_Text: Toggle Button
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 12800000, guid: e48b920555144c6da3ee2ab03f0fda88, type: 3}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!114 &114115885122573574
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1701243716490594}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e284c41c72ed62145b1ae10cfedd1196, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4377713256703586}
+ Weight: 10
+ Depth: 20
+ Alignment: {x: 0, y: -1, z: 0}
+ PositionOffset: {x: 0, y: 0, z: 0}
+ AddCorner: 1
+ OnlyInEditMode: 0
+--- !u!114 &114382749481769538
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1915336767748402}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e284c41c72ed62145b1ae10cfedd1196, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4377713256703586}
+ Weight: 10
+ Depth: 20
+ Alignment: {x: 0, y: 1, z: 0}
+ PositionOffset: {x: 0, y: 0, z: 0}
+ AddCorner: 1
+ OnlyInEditMode: 0
+--- !u!114 &114602454650795392
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1731322542945762}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7450a7c8dc3a5f4bb0bab1dc83c3354, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4377713256703586}
+ Scale: {x: 1, y: 1, z: 1}
+ Offset: {x: 0, y: 0, z: 0}
+ OnlyInEditMode: 0
+--- !u!114 &114718788154663760
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1881066023246956}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Enabled: 1
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
+ InputAction:
+ id: 0
+ description:
+ axisConstraint: 0
+ InputActionId: 0
+ IsGlobal: 0
+ Dimensions: 2
+ CanSelect: 1
+ CanDeselect: 1
+ VoiceCommand:
+ RequiresGaze: 1
+ Profiles:
+ - Target: {fileID: 1731322542945762}
+ Themes:
+ - {fileID: 11400000, guid: 61962e4d95d843842bb2dee96b41da6c, type: 2}
+ - {fileID: 11400000, guid: 435bbaee4d9763b4891ab39b7462ec31, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1968190776631966}
+ Themes:
+ - {fileID: 11400000, guid: b1ef68ffe69fad14a8d8401f7bd17db5, type: 2}
+ - {fileID: 11400000, guid: 6309da53723ca964fa65893eb0df5b4e, type: 2}
+ HadDefaultTheme: 1
+ - Target: {fileID: 1835907919169782}
+ Themes:
+ - {fileID: 11400000, guid: 210ecfb82b9f09c4d835184cd0034155, type: 2}
+ - {fileID: 11400000, guid: 689bdf5999aa8014694da2cb1c1c1a27, type: 2}
+ HadDefaultTheme: 1
+ OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ Events: []
+--- !u!114 &114868299459976492
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1340827229095316}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e284c41c72ed62145b1ae10cfedd1196, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4377713256703586}
+ Weight: 10
+ Depth: 20
+ Alignment: {x: 1, y: 0, z: 0}
+ PositionOffset: {x: 0, y: 0, z: 0}
+ AddCorner: 1
+ OnlyInEditMode: 0
+--- !u!114 &114868511504163272
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1058005695581158}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 18715f9b6e2e86c42902a892a35010dc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ ItemSize: {x: 420, y: 100, z: 10}
+ OnlyInEditMode: 0
+--- !u!114 &114979487542106970
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 1353471469579004}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e284c41c72ed62145b1ae10cfedd1196, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ BasePixelScale: 2048
+ AnchorTransform: {fileID: 4377713256703586}
+ Weight: 10
+ Depth: 20
+ Alignment: {x: -1, y: 0, z: 0}
+ PositionOffset: {x: 0, y: 0, z: 0}
+ AddCorner: 1
+ OnlyInEditMode: 0
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/ToggleButton.prefab.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/ToggleButton.prefab.meta
new file mode 100644
index 00000000000..10fa448315c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Prefabs/ToggleButton.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 51cc6641d88b49d46bd38572540efe6c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/README.md b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/README.md
new file mode 100644
index 00000000000..a8cd3f01277
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/README.md
@@ -0,0 +1,18 @@
+# Interactables
+
+The Interactable is a base component for building interactive content, like buttons and UI controls, with feedback based on interactive states. Interactables can have voice commands added to them and offers a deep theming system for all types of snesory feedback.
+
+- Button - a standard UI button with basic feedback
+- Toggle Button - an advanced button with multiple dimensions
+- Animated Button - a button that uses an Animator theme for feedback
+- Simple Button - a bare bones button with a mesh and label using the Default theme
+- Holographic Button - an example of shell like buttons with a speech prompt
+- Toggle Switch - a toggle switch UI control example
+- Checkbox - an example of a checkbox toggle control
+- Radial and Radial Set - an example of a button collection or tab system where only one button can be toggled at a time
+
+
+
+
+
+
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/README.md.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/README.md.meta
new file mode 100644
index 00000000000..718b9aaff76
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/README.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ba061dabab3b8a4458e7d1e729d8baf8
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts.meta
new file mode 100644
index 00000000000..1950778f332
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9379a4de6fb79dc4bb32013ae605a9ed
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events.meta
new file mode 100644
index 00000000000..6f5b3799217
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 435aed82b3443da4cac00b98f01469e5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/IInteractableHandler.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/IInteractableHandler.cs
new file mode 100644
index 00000000000..78868f5e322
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/IInteractableHandler.cs
@@ -0,0 +1,32 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ public interface IInteractableHandler
+ {
+ void OnStateChange(InteractableStates state, Interactable source);
+
+ ///
+ /// A voice command was called
+ ///
+ ///
+ ///
+ ///
+ void OnVoiceCommand(InteractableStates state, Interactable source, string command, int index = 0, int length = 1);
+
+ ///
+ /// A click event happened
+ ///
+ ///
+ ///
+ void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null);
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/IInteractableHandler.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/IInteractableHandler.cs.meta
new file mode 100644
index 00000000000..9e6abc4466a
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/IInteractableHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 876e56bb04b040c45b84e308a27ec404
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableAudioReceiver.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableAudioReceiver.cs
new file mode 100644
index 00000000000..5df5dc4943f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableAudioReceiver.cs
@@ -0,0 +1,86 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// Add audio clip to play onClick or on Voice Command
+ ///
+ public class InteractableAudioReceiver : ReceiverBase
+ {
+ [InspectorField(Type = InspectorField.FieldTypes.AudioClip, Label = "Audio Clip", Tooltip = "Assign an audioclip to play on click")]
+ public AudioClip AudioClip;
+
+ private State lastState;
+
+ public InteractableAudioReceiver(UnityEvent ev) : base(ev)
+ {
+ Name = "AudioEvent";
+ HideUnityEvents = true; // hides Unity events in the receiver - meant to be code only
+ }
+
+ ///
+ /// Called on update, check to see if the state has changed sense the last call
+ ///
+ ///
+ ///
+ public override void OnUpdate(InteractableStates state, Interactable source)
+ {
+ if (state.CurrentState() != lastState)
+ {
+ // the state has changed, do something new
+ lastState = state.CurrentState();
+ }
+ }
+
+ ///
+ /// assign the clip to the audio source and play
+ ///
+ ///
+ private void PlayAudio(Interactable source)
+ {
+ AudioSource audioSource = source.GetComponent();
+ if(audioSource == null)
+ {
+ audioSource = source.gameObject.AddComponent();
+ }
+
+ audioSource.clip = AudioClip;
+ audioSource.Play();
+ }
+
+ ///
+ /// click happened
+ ///
+ ///
+ ///
+ ///
+ public override void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null)
+ {
+ base.OnClick(state, source);
+ PlayAudio(source);
+ }
+
+ ///
+ /// voice command called
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public override void OnVoiceCommand(InteractableStates state, Interactable source, string command, int index = 0, int length = 1)
+ {
+ base.OnVoiceCommand(state, source, command, index, length);
+ PlayAudio(source);
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableAudioReceiver.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableAudioReceiver.cs.meta
new file mode 100644
index 00000000000..8d321630c5b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableAudioReceiver.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a25ce1ec08f37a4419087dc4d0625800
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableEvent.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableEvent.cs
new file mode 100644
index 00000000000..bb6c476a2bf
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableEvent.cs
@@ -0,0 +1,140 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// Event base class for events attached to Interactables.
+ ///
+ [System.Serializable]
+ public class InteractableEvent
+ {
+ public string Name;
+ public UnityEvent Event;
+ public string ClassName;
+ public ReceiverBase Receiver;
+ public List Settings;
+ public bool HideUnityEvents;
+
+ public struct EventLists
+ {
+ public List EventTypes;
+ public List EventNames;
+ }
+
+ public struct ReceiverData
+ {
+ public string Name;
+ public bool HideUnityEvents;
+ public List Fields;
+ }
+
+ public ReceiverData AddOnClick()
+ {
+ return AddReceiver(typeof(InteractableOnClickReceiver));
+ }
+
+ ///
+ /// Add new events/receivers to the list and grab all the InspectorFields so we can render them in the inspector
+ ///
+ ///
+ ///
+ public ReceiverData AddReceiver(Type type)
+ {
+ ReceiverBase receiver = (ReceiverBase)Activator.CreateInstance(type, Event);
+ // get the settings for the inspector
+
+ List fields = new List();
+
+ Type myType = receiver.GetType();
+ int index = 0;
+
+ ReceiverData data = new ReceiverData();
+
+ foreach (PropertyInfo prop in myType.GetProperties())
+ {
+ var attrs = (InspectorField[])prop.GetCustomAttributes(typeof(InspectorField), false);
+ foreach (var attr in attrs)
+ {
+ fields.Add(new InspectorFieldData() { Name = prop.Name, Attributes = attr, Value = prop.GetValue(receiver, null)});
+ }
+
+ index++;
+ }
+
+ index = 0;
+ foreach (FieldInfo field in myType.GetFields())
+ {
+ var attrs = (InspectorField[])field.GetCustomAttributes(typeof(InspectorField), false);
+ foreach (var attr in attrs)
+ {
+ fields.Add(new InspectorFieldData() { Name = field.Name, Attributes = attr, Value = field.GetValue(receiver) });
+ }
+
+ index++;
+ }
+
+ data.Fields = fields;
+ data.Name = receiver.Name;
+ data.HideUnityEvents = receiver.HideUnityEvents;
+
+ return data;
+ }
+
+ ///
+ /// Get the recieverBase types that contain event logic
+ ///
+ ///
+ public static EventLists GetEventTypes()
+ {
+ List eventTypes = new List();
+ List names = new List();
+
+ var assemblys = AppDomain.CurrentDomain.GetAssemblies();
+ foreach (var assembly in assemblys)
+ {
+ foreach (Type type in assembly.GetTypes())
+ {
+ TypeInfo info = type.GetTypeInfo();
+ if (info.BaseType != null && info.BaseType.Equals(typeof(ReceiverBase)))
+ {
+ eventTypes.Add(type);
+ names.Add(type.Name);
+ }
+ }
+ }
+
+ EventLists lists = new EventLists();
+ lists.EventTypes = eventTypes;
+ lists.EventNames = names;
+ return lists;
+ }
+
+ ///
+ /// Create the event and setup the values from the inspector
+ ///
+ ///
+ ///
+ ///
+ public static ReceiverBase GetReceiver(InteractableEvent iEvent, EventLists lists)
+ {
+ int index = InspectorField.ReverseLookup(iEvent.ClassName, lists.EventNames.ToArray());
+ Type eventType = lists.EventTypes[index];
+ // apply the settings?
+ ReceiverBase newEvent = (ReceiverBase)Activator.CreateInstance(eventType, iEvent.Event);
+ InspectorGenericFields.LoadSettings(newEvent, iEvent.Settings);
+
+ return newEvent;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableEvent.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableEvent.cs.meta
new file mode 100644
index 00000000000..d7b2c7f197c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableEvent.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: fc1096a9ad3b5e14b8102fa683bd90b5
+timeCreated: 1517598774
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnClickReceiver.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnClickReceiver.cs
new file mode 100644
index 00000000000..328a6a7f230
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnClickReceiver.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.
+
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// A basic receiver for detecting clicks
+ ///
+ public class InteractableOnClickReceiver : ReceiverBase
+ {
+ public InteractableOnClickReceiver(UnityEvent ev): base(ev)
+ {
+ Name = "OnClick";
+ }
+
+ public override void OnUpdate(InteractableStates state, Interactable source)
+ {
+ // using onClick
+ }
+
+ public override void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null)
+ {
+ uEvent.Invoke();
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnClickReceiver.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnClickReceiver.cs.meta
new file mode 100644
index 00000000000..83719b37085
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnClickReceiver.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 9b1fcb08c2998ba4b91fef7590195f20
+timeCreated: 1520556727
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnFocusReceiver.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnFocusReceiver.cs
new file mode 100644
index 00000000000..3967c4d9444
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnFocusReceiver.cs
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// A basic focus event receiver
+ ///
+ public class InteractableOnFocusReceiver : ReceiverBase
+ {
+ [InspectorField(Type = InspectorField.FieldTypes.Event, Label = "On Focus Off", Tooltip = "Focus has left the object")]
+ public UnityEvent OnFocusOff = new UnityEvent();
+
+ private bool hadFocus;
+ private State lastState;
+
+ public InteractableOnFocusReceiver(UnityEvent ev) : base(ev)
+ {
+ Name = "OnFocus";
+ }
+
+ public override void OnUpdate(InteractableStates state, Interactable source)
+ {
+ bool changed = state.CurrentState() != lastState;
+
+ bool hasFocus = state.GetState(InteractableStates.InteractableStateEnum.Focus).Value > 0;
+
+ if (hadFocus != hasFocus && changed)
+ {
+ if (hasFocus)
+ {
+ uEvent.Invoke();
+ }
+ else
+ {
+ OnFocusOff.Invoke();
+ }
+ }
+
+ hadFocus = hasFocus;
+ lastState = state.CurrentState();
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnFocusReceiver.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnFocusReceiver.cs.meta
new file mode 100644
index 00000000000..591d6d9c30c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnFocusReceiver.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 31240ad84e995b144b11d36746833cac
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnHoldReceiver.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnHoldReceiver.cs
new file mode 100644
index 00000000000..d4773151194
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnHoldReceiver.cs
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// Basic hold event receiver
+ ///
+ public class InteractableOnHoldReceiver : ReceiverBase
+ {
+ [InspectorField(Type = InspectorField.FieldTypes.Float, Label = "Hold Time", Tooltip = "The amount of time to press before triggering event")]
+ public float HoldTime = 1f;
+
+ private float clickTimer = 0;
+
+ private bool hasDown;
+
+ public InteractableOnHoldReceiver(UnityEvent ev): base(ev)
+ {
+ Name = "OnHold";
+ }
+
+ public override void OnUpdate(InteractableStates state, Interactable source)
+ {
+
+ if (state.GetState(InteractableStates.InteractableStateEnum.Pressed).Value > 0 && !hasDown)
+ {
+ hasDown = true;
+ clickTimer = 0;
+ }
+ else if(state.GetState(InteractableStates.InteractableStateEnum.Pressed).Value < 1)
+ {
+ hasDown = false;
+ }
+
+ Debug.Log(HoldTime);
+
+ if (hasDown && clickTimer < HoldTime)
+ {
+ clickTimer += Time.deltaTime;
+
+ if (clickTimer >= HoldTime)
+ {
+ Debug.Log("Hold!!");
+ uEvent.Invoke();
+ }
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnHoldReceiver.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnHoldReceiver.cs.meta
new file mode 100644
index 00000000000..76dea84030a
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnHoldReceiver.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: e43e4a5380e2b154b9f263ec1204fb76
+timeCreated: 1520556727
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnPressReceiver.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnPressReceiver.cs
new file mode 100644
index 00000000000..fa91875f4cc
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnPressReceiver.cs
@@ -0,0 +1,53 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// Basic press event receiver
+ ///
+ public class InteractableOnPressReceiver : ReceiverBase
+ {
+ [InspectorField(Type = InspectorField.FieldTypes.Event, Label = "On Release", Tooltip = "The button is released")]
+ public UnityEvent OnRelease = new UnityEvent();
+
+ private bool hasDown;
+ private State lastState;
+
+ public InteractableOnPressReceiver(UnityEvent ev) : base(ev)
+ {
+ Name = "OnPress";
+ }
+
+ public override void OnUpdate(InteractableStates state, Interactable source)
+ {
+ bool changed = state.CurrentState() != lastState;
+
+ bool hadDown = hasDown;
+ hasDown = state.GetState(InteractableStates.InteractableStateEnum.Pressed).Value > 0;
+
+ bool focused = state.GetState(InteractableStates.InteractableStateEnum.Focus).Value > 0;
+
+ if (changed && hasDown != hadDown && focused)
+ {
+ if (hasDown)
+ {
+ uEvent.Invoke();
+ }
+ else
+ {
+ OnRelease.Invoke();
+ }
+ }
+
+ lastState = state.CurrentState();
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnPressReceiver.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnPressReceiver.cs.meta
new file mode 100644
index 00000000000..b16e1d2ef3a
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnPressReceiver.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: aa43139c8c4141c41a2d279bc01bffd0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnToggleReceiver.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnToggleReceiver.cs
new file mode 100644
index 00000000000..4567d5f3820
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnToggleReceiver.cs
@@ -0,0 +1,53 @@
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// a receiver that listens to toggle events
+ ///
+ public class InteractableOnToggleReceiver : ReceiverBase
+ {
+ [InspectorField(Type = InspectorField.FieldTypes.Event, Label = "On Deselect", Tooltip = "The toggle is deselected")]
+ public UnityEvent OnDeselect = new UnityEvent();
+
+ private int lastIndex;
+
+ public InteractableOnToggleReceiver(UnityEvent ev) : base(ev)
+ {
+ Name = "OnSelect";
+ }
+
+ public override void OnUpdate(InteractableStates state, Interactable source)
+ {
+ // using onClick
+ }
+
+ public override void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null)
+ {
+ int currentIndex = source.GetDimensionIndex();
+
+ if (currentIndex != lastIndex)
+ {
+ if (currentIndex % 2 == 0)
+ {
+ OnDeselect.Invoke();
+ }
+ else
+ {
+ uEvent.Invoke();
+ }
+ }
+
+ lastIndex = currentIndex;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnToggleReceiver.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnToggleReceiver.cs.meta
new file mode 100644
index 00000000000..43558a1addf
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableOnToggleReceiver.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c619afe3016b58c41817a2783107900d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiver.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiver.cs
new file mode 100644
index 00000000000..91859af8a68
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiver.cs
@@ -0,0 +1,96 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// Example of building an event system for Interactable that still uses ReceiverBase events
+ ///
+ public class InteractableReceiver : ReceiverBaseMonoBehavior
+ {
+ // list of events added to this interactable
+ [HideInInspector]
+ public List Events = new List();
+
+ protected virtual void Awake()
+ {
+ SetupEvents();
+ }
+
+ ///
+ /// set up only one event
+ ///
+ protected virtual void SetupEvents()
+ {
+ if (Events.Count > 0)
+ {
+ InteractableEvent.EventLists lists = InteractableEvent.GetEventTypes();
+ Events[0].Receiver = InteractableEvent.GetReceiver(Events[0], lists);
+ Events[0].Receiver.Host = this;
+ }
+ }
+
+ ///
+ /// A state has changed
+ ///
+ ///
+ ///
+ public override void OnStateChange(InteractableStates state, Interactable source)
+ {
+ base.OnStateChange(state, source);
+ if (Events.Count > 0)
+ {
+ if (Events[0].Receiver != null)
+ {
+ Events[0].Receiver.OnUpdate(state, source);
+ }
+ }
+ }
+
+ ///
+ /// click happened
+ ///
+ ///
+ ///
+ ///
+ public override void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null)
+ {
+ base.OnClick(state, source, pointer);
+
+ if (Events.Count > 0)
+ {
+ if (Events[0].Receiver != null)
+ {
+ Events[0].Receiver.OnClick(state, source, pointer);
+ }
+ }
+ }
+
+ ///
+ /// voice command happened
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public override void OnVoiceCommand(InteractableStates state, Interactable source, string command, int index = 0, int length = 1)
+ {
+ base.OnVoiceCommand(state, source, command, index, length);
+
+ if (Events.Count > 0)
+ {
+ if (Events[0].Receiver != null)
+ {
+ Events[0].Receiver.OnVoiceCommand(state, source, command, index, length);
+ }
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiver.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiver.cs.meta
new file mode 100644
index 00000000000..d361adc79a2
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiver.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d5501401ca29ca4458b1497258367c8b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiverList.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiverList.cs
new file mode 100644
index 00000000000..2208810f03b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiverList.cs
@@ -0,0 +1,100 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections;
+using System.Collections.Generic;
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// An example of building an Interactable receiver that uses built-in receivers that extend ReceiverBase
+ /// This is a mono behavior, place on a gameObject and assign the Interactable
+ ///
+ public class InteractableReceiverList : ReceiverBaseMonoBehavior
+ {
+ // list of events added to this interactable
+ [HideInInspector]
+ public List Events = new List();
+
+ protected virtual void Awake()
+ {
+ SetupEvents();
+ }
+
+ ///
+ /// starts the event system
+ ///
+ protected virtual void SetupEvents()
+ {
+ InteractableEvent.EventLists lists = InteractableEvent.GetEventTypes();
+
+ for (int i = 0; i < Events.Count; i++)
+ {
+ Events[i].Receiver = InteractableEvent.GetReceiver(Events[i], lists);
+ Events[i].Receiver.Host = this;
+ }
+ }
+
+ ///
+ /// .A state has changed
+ ///
+ ///
+ ///
+ public override void OnStateChange(InteractableStates state, Interactable source)
+ {
+ base.OnStateChange(state, source);
+
+ for (int i = 0; i < Events.Count; i++)
+ {
+ if (Events[i].Receiver != null)
+ {
+ Events[i].Receiver.OnUpdate(state, source);
+ }
+ }
+
+ }
+
+ ///
+ /// captures click events
+ ///
+ ///
+ ///
+ ///
+ public override void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null)
+ {
+ base.OnClick(state, source, pointer);
+
+ for (int i = 0; i < Events.Count; i++)
+ {
+ if (Events[i].Receiver != null)
+ {
+ Events[i].Receiver.OnClick(state, source, pointer);
+ }
+ }
+ }
+
+ ///
+ /// captures voice commands
+ ///
+ ///
+ ///
+ ///
+ /// index of the voice command
+ /// voice command array length
+ public override void OnVoiceCommand(InteractableStates state, Interactable source, string command, int index = 0, int length = 1)
+ {
+ base.OnVoiceCommand(state, source, command, index, length);
+
+ for (int i = 0; i < Events.Count; i++)
+ {
+ if (Events[i].Receiver != null)
+ {
+ Events[i].Receiver.OnVoiceCommand(state, source, command, index, length);
+ }
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiverList.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiverList.cs.meta
new file mode 100644
index 00000000000..e54e173866c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiverList.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5f45de32ad1e8334a8bd1ca76cb7dd83
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBase.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBase.cs
new file mode 100644
index 00000000000..4ca1b0b1538
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBase.cs
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// The base class for all receivers that attach to Interactables
+ ///
+ public abstract class ReceiverBase
+ {
+ public string Name;
+
+ public bool HideUnityEvents;
+ protected UnityEvent uEvent;
+ public MonoBehaviour Host;
+
+ public ReceiverBase(UnityEvent ev)
+ {
+ uEvent = ev;
+ }
+
+ ///
+ /// The state has changed
+ ///
+ ///
+ ///
+ public abstract void OnUpdate(InteractableStates state, Interactable source);
+
+ ///
+ /// A voice command was called
+ ///
+ ///
+ ///
+ ///
+ public virtual void OnVoiceCommand(InteractableStates state, Interactable source, string command, int index = 0, int length = 1)
+ {
+ // voice command called
+ }
+
+ ///
+ /// A click event happened
+ ///
+ ///
+ ///
+ public virtual void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null)
+ {
+ // click called
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBase.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBase.cs.meta
new file mode 100644
index 00000000000..f0f0ca74e99
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBase.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 4a8e848e5e303864ebdfcd9c46eb22a4
+timeCreated: 1520556697
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBaseMonoBehavior.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBaseMonoBehavior.cs
new file mode 100644
index 00000000000..f16cc5cc45b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBaseMonoBehavior.cs
@@ -0,0 +1,156 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ ///
+ /// A base class for detecting hand handling state changes from an Interactable
+ /// Extend this class to build new events or receivers from Interactables
+ ///
+ /// InteractableReceiver or InteractableReceiverList can be used with ReceiverBase - built-in receivers
+ ///
+ public class ReceiverBaseMonoBehavior : MonoBehaviour, IInteractableHandler
+ {
+ public enum SearchScopes { Self, Parent, Children};
+ public Interactable Interactable;
+ public SearchScopes InteractableSearchScope;
+ protected State lastState;
+
+ ///
+ /// look for an Interactable if not assigned
+ ///
+ protected virtual void OnEnable()
+ {
+ if (Interactable == null)
+ {
+ switch (InteractableSearchScope)
+ {
+ case SearchScopes.Self:
+ Interactable = GetComponent();
+ break;
+ case SearchScopes.Parent:
+ Interactable = GetComponentInParent();
+ break;
+ case SearchScopes.Children:
+ Interactable = GetComponentInChildren();
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (Interactable != null)
+ {
+ Interactable.AddHandler(this);
+ }
+ }
+
+ ///
+ /// Add an interactable and add it as a handler
+ ///
+ ///
+ public void AddInteractable(Interactable interactable)
+ {
+ if(Interactable != null)
+ {
+ Interactable.RemoveHandler(this);
+ }
+
+ Interactable = interactable;
+ Interactable.AddHandler(this);
+ }
+
+ ///
+ /// Remove itself as a handler
+ ///
+ protected virtual void OnDisable()
+ {
+ if (Interactable == null)
+ {
+ Interactable.RemoveHandler(this);
+ }
+ }
+
+ protected virtual void Update()
+ {
+ if (Interactable != null && Interactable.StateManager != null)
+ {
+ if(Interactable.StateManager.CurrentState()!= lastState)
+ {
+ OnStateChange(Interactable.StateManager, Interactable);
+
+ lastState = Interactable.StateManager.CurrentState();
+ }
+ }
+ }
+
+ ///
+ /// a state has changed
+ ///
+ ///
+ ///
+ public virtual void OnStateChange(InteractableStates state, Interactable source)
+ {
+ // the state has changed, do something new
+ /*
+ bool hasDown = state.GetState(InteractableStates.InteractableStateEnum.Pressed).Value > 0;
+
+ bool focused = state.GetState(InteractableStates.InteractableStateEnum.Focus).Value > 0;
+
+ bool isDisabled = state.GetState(InteractableStates.InteractableStateEnum.Disabled).Value > 0;
+
+ bool hasInteractive = state.GetState(InteractableStates.InteractableStateEnum.Interactive).Value > 0;
+
+ bool hasObservation = state.GetState(InteractableStates.InteractableStateEnum.Observation).Value > 0;
+
+ bool hasObservationTargeted = state.GetState(InteractableStates.InteractableStateEnum.ObservationTargeted).Value > 0;
+
+ bool isTargeted = state.GetState(InteractableStates.InteractableStateEnum.Targeted).Value > 0;
+
+ bool isToggled = state.GetState(InteractableStates.InteractableStateEnum.Toggled).Value > 0;
+
+ bool isVisited = state.GetState(InteractableStates.InteractableStateEnum.Visited).Value > 0;
+
+ bool isDefault = state.GetState(InteractableStates.InteractableStateEnum.Default).Value > 0;
+
+ bool hasGesture = state.GetState(InteractableStates.InteractableStateEnum.Gesture).Value > 0;
+
+ bool hasGestureMax = state.GetState(InteractableStates.InteractableStateEnum.GestureMax).Value > 0;
+
+ bool hasCollistion = state.GetState(InteractableStates.InteractableStateEnum.Collision).Value > 0;
+
+ bool hasCollistion = state.GetState(InteractableStates.InteractableStateEnum.VoiceCommand).Value > 0;
+
+ bool hasCustom = state.GetState(InteractableStates.InteractableStateEnum.Custom).Value > 0;
+ */
+ }
+
+ ///
+ /// A voice command was called
+ ///
+ ///
+ ///
+ ///
+ public virtual void OnVoiceCommand(InteractableStates state, Interactable source, string command, int index = 0, int length = 1)
+ {
+ // Voice Command Happened
+ }
+
+ ///
+ /// A click event happened
+ ///
+ ///
+ ///
+ ///
+ public virtual void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null)
+ {
+ // Click Happened
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBaseMonoBehavior.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBaseMonoBehavior.cs.meta
new file mode 100644
index 00000000000..efeeb991336
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/ReceiverBaseMonoBehavior.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d2f25473fd785244c91332bef7a21352
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Interactable.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Interactable.cs
new file mode 100644
index 00000000000..45386335266
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Interactable.cs
@@ -0,0 +1,1096 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Definitions.InputSystem;
+using Microsoft.MixedReality.Toolkit.Core.Definitions.Utilities;
+using Microsoft.MixedReality.Toolkit.Core.EventDatum.Input;
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem;
+using Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem.Handlers;
+using Microsoft.MixedReality.Toolkit.Core.Services;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Profile;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+using UnityEngine.Windows.Speech;
+#endif // UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable
+{
+ ///
+ /// Uses input and action data to declare a set of states
+ /// Maintains a collection of themes that react to state changes and provide scensory feedback
+ /// Passes state information and input data on to receivers that detect patterns and does stuff.
+ ///
+
+ // TODO: How to handle cycle buttons
+ // TODO: plumb for gestures
+ // TODO: Add way to protect the defaultTheme from being edited and encourage users to create a new theme, maybe include a create/duplicate button
+ // TODO: Make sure all shader values are batched by theme
+
+ [System.Serializable]
+
+ public class Interactable : MonoBehaviour, IMixedRealityFocusHandler, IMixedRealityInputHandler, IMixedRealityPointerHandler, IMixedRealitySpeechHandler // TEMP , IInputClickHandler, IFocusable, IInputHandler
+ {
+ ///
+ /// Setup the input system
+ ///
+ private static IMixedRealityInputSystem inputSystem = null;
+ protected static IMixedRealityInputSystem InputSystem => inputSystem ?? (inputSystem = MixedRealityToolkit.Instance.GetService());
+
+ // list of pointers
+ protected List pointers = new List();
+ public List Focusers => pointers;
+
+ // is the interactable enabled?
+ public bool Enabled = true;
+ // a collection of states and basic state logic
+ public States.States States;
+ // the state logic for comparing state
+ public InteractableStates StateManager;
+ // which action is this interactable listening for
+ public MixedRealityInputAction InputAction;
+
+ // the id of the selected inputAction, for serialization
+ [HideInInspector]
+ public int InputActionId;
+ // is the interactable listening to global events
+ public bool IsGlobal = false;
+ // a way of adding more layers of states for toggles
+ public int Dimensions = 1;
+ // is the interactive selectable
+ public bool CanSelect = true;
+ // can deselect a toggle, a radial button or tab would set this to false
+ public bool CanDeselect = true;
+ // a voice command to fire a click event
+ public string VoiceCommand = "";
+ // does the voice command require this to have focus?
+ public bool RequiresFocus = true;
+
+ ///
+ /// Does this interactable require focus
+ ///
+ public bool FocusEnabled { get { return !IsGlobal; } set { IsGlobal = !value; } }
+
+ // list of profiles can match themes with gameObjects
+ public List Profiles = new List();
+ // Base onclick event
+ public UnityEvent OnClick;
+ // list of events added to this interactable
+ public List Events = new List();
+ // the list of running theme instances to receive state changes
+ public List runningThemesList = new List();
+
+ // the list of profile settings, so theme values are not directly effected
+ protected List runningProfileSettings = new List();
+ // directly manipulate a theme value, skip blending
+ protected bool forceUpdate = false;
+
+#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+ protected KeywordRecognizer keywordRecognizer;
+ protected RecognitionConfidenceLevel recognitionConfidenceLevel { get; set; }
+#endif // UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+
+ // basic button states
+ public bool HasFocus { get; private set; }
+ public bool HasPress { get; private set; }
+ public bool IsDisabled { get; private set; }
+
+ // advanced button states from InteractableStates.InteractableStateEnum
+ public bool IsTargeted { get; private set; }
+ public bool IsInteractive { get; private set; }
+ public bool HasObservationTargeted { get; private set; }
+ public bool HasObservation { get; private set; }
+ public bool IsVisited { get; private set; }
+ public bool IsToggled { get; private set; }
+ public bool HasGesture { get; private set; }
+ public bool HasGestureMax { get; private set; }
+ public bool HasCollision { get; private set; }
+ public bool HasVoiceCommand { get; private set; }
+ public bool HasCustom { get; private set; }
+
+ // internal cached states
+ protected State lastState;
+ protected bool wasDisabled = false;
+
+ // cache of current dimenion
+ protected int dimensionIndex = 0;
+
+ // allows for switching colliders without firing a lose focus imediately
+ // for advanced controls like drop-downs
+ protected float rollOffTime = 0.25f;
+ protected float rollOffTimer = 0.25f;
+
+ // cache voice commands
+ protected string[] voiceCommands;
+
+ // IInteractableEvents
+ protected List handlers = new List();
+ protected Coroutine globalTimer;
+ protected float clickTime = 0.3f;
+ protected Coroutine inputTimer;
+
+ protected MixedRealityInputAction pointerInputAction;
+
+ // order = pointer , input
+ protected int[] GlobalClickOrder = new int[] { 0, 0 };
+
+ public void AddHandler(IInteractableHandler handler)
+ {
+ if (!handlers.Contains(handler))
+ {
+ handlers.Add(handler);
+ }
+ }
+
+ public void RemoveHandler(IInteractableHandler handler)
+ {
+ if (handlers.Contains(handler))
+ {
+ handlers.Remove(handler);
+ }
+ }
+
+ #region InspectorHelpers
+ ///
+ /// Gets a list of input actions, used by the inspector
+ ///
+ ///
+ public static string[] GetInputActions()
+ {
+ MixedRealityInputAction[] actions = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions;
+
+ List list = new List();
+ for (int i = 0; i < actions.Length; i++)
+ {
+ list.Add(actions[i].Description);
+ }
+
+ return list.ToArray();
+ }
+
+ ///
+ /// Returns a list of states assigned to the Interactable
+ ///
+ ///
+ public State[] GetStates()
+ {
+ if (States != null)
+ {
+ return States.GetStates();
+ }
+
+ return new State[0];
+ }
+ #endregion InspectorHelpers
+
+ #region MonoBehaviorImplimentation
+
+ protected virtual void Awake()
+ {
+ //State = new InteractableStates(InteractableStates.Default);
+ InputAction = ResolveInputAction(InputActionId);
+ SetupEvents();
+ SetupThemes();
+ SetupStates();
+ }
+
+ private void OnEnable()
+ {
+ if (IsGlobal)
+ {
+ InputSystem.Register(gameObject);
+ }
+
+ SetupVoiceCommand();
+ }
+
+ private void OnDisable()
+ {
+ if (IsGlobal)
+ {
+ InputSystem.Unregister(gameObject);
+ }
+
+ StopVoiceCommand();
+ }
+
+ protected virtual void Update()
+ {
+ if (rollOffTimer < rollOffTime && HasPress)
+ {
+ rollOffTimer += Time.deltaTime;
+
+ if (rollOffTimer >= rollOffTime)
+ {
+ SetPress(false);
+ }
+ }
+
+ for (int i = 0; i < Events.Count; i++)
+ {
+ if (Events[i].Receiver != null)
+ {
+ Events[i].Receiver.OnUpdate(StateManager, this);
+ }
+ }
+
+ for (int i = 0; i < runningThemesList.Count; i++)
+ {
+ if (runningThemesList[i].Loaded)
+ {
+ runningThemesList[i].OnUpdate(StateManager.CurrentState().ActiveIndex, forceUpdate);
+ }
+ }
+
+ if (lastState != StateManager.CurrentState())
+ {
+ for (int i = 0; i < handlers.Count; i++)
+ {
+ if (handlers[i] != null)
+ {
+ handlers[i].OnStateChange(StateManager, this);
+ }
+ }
+ }
+
+ if (forceUpdate)
+ {
+ forceUpdate = false;
+ }
+
+ if (IsDisabled == Enabled)
+ {
+ SetDisabled(!Enabled);
+ }
+
+ lastState = StateManager.CurrentState();
+ }
+
+ #endregion MonoBehaviorImplimentation
+
+ #region InteractableInitiation
+
+ ///
+ /// starts the StateManager
+ ///
+ protected virtual void SetupStates()
+ {
+ StateManager = States.SetupLogic();
+ }
+
+ ///
+ /// Creates the event receiver instances from the Events list
+ ///
+ protected virtual void SetupEvents()
+ {
+ InteractableEvent.EventLists lists = InteractableEvent.GetEventTypes();
+
+ for (int i = 0; i < Events.Count; i++)
+ {
+ Events[i].Receiver = InteractableEvent.GetReceiver(Events[i], lists);
+ Events[i].Receiver.Host = this;
+ //Events[i].Settings = InteractableEvent.GetSettings(Events[i].Receiver);
+ // apply settings
+ }
+ }
+
+ ///
+ /// Creates the list of theme instances based on all the theme settings
+ ///
+ protected virtual void SetupThemes()
+ {
+ InteractableProfileItem.ThemeLists lists = InteractableProfileItem.GetThemeTypes();
+ runningThemesList = new List();
+ runningProfileSettings = new List();
+ for (int i = 0; i < Profiles.Count; i++)
+ {
+ ProfileSettings profileSettings = new ProfileSettings();
+ List themeSettingsList = new List();
+ for (int j = 0; j < Profiles[i].Themes.Count; j++)
+ {
+ Theme theme = Profiles[i].Themes[j];
+ ThemeSettings themeSettings = new ThemeSettings();
+ if (Profiles[i].Target != null && theme != null)
+ {
+ List tempSettings = new List();
+ for (int n = 0; n < theme.Settings.Count; n++)
+ {
+ InteractableThemePropertySettings settings = theme.Settings[n];
+
+ settings.Theme = InteractableProfileItem.GetTheme(settings, Profiles[i].Target, lists);
+
+ // add themes to theme list based on dimension
+ if (j == dimensionIndex)
+ {
+ runningThemesList.Add(settings.Theme);
+ }
+
+ tempSettings.Add(settings);
+ }
+
+ themeSettings.Settings = tempSettings;
+ themeSettingsList.Add(themeSettings);
+ }
+ }
+
+ profileSettings.ThemeSettings = themeSettingsList;
+ runningProfileSettings.Add(profileSettings);
+ }
+ }
+
+ #endregion InteractableInitiation
+
+ #region SetButtonStates
+
+ ///
+ /// Grabs the state value index
+ ///
+ ///
+ ///
+ public int GetStateValue(InteractableStates.InteractableStateEnum state)
+ {
+ return StateManager.GetStateValue((int)state);
+ }
+
+ ///
+ /// Handle focus state changes
+ ///
+ ///
+ public virtual void SetFocus(bool focus)
+ {
+ HasFocus = focus;
+ if(!focus && HasPress)
+ {
+ rollOffTimer = 0;
+ }
+ else
+ {
+ rollOffTimer = rollOffTime;
+ }
+
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Focus, focus ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetPress(bool press)
+ {
+ HasPress = press;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Pressed, press ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetDisabled(bool disabled)
+ {
+ IsDisabled = disabled;
+ Enabled = !disabled;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Disabled, disabled ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetTargeted(bool targeted)
+ {
+ IsTargeted = targeted;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Targeted, targeted ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetInteractive(bool interactive)
+ {
+ IsInteractive = interactive;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Interactive, interactive ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetObservationTargeted(bool targeted)
+ {
+ HasObservationTargeted = targeted;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.ObservationTargeted, targeted ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetObservation(bool observation)
+ {
+ HasObservation = observation;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Observation, observation ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetVisited(bool visited)
+ {
+ IsVisited = visited;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Visited, visited ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetToggled(bool toggled)
+ {
+ IsToggled = toggled;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Toggled, toggled ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetGesture(bool gesture)
+ {
+ HasGesture = gesture;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Gesture, gesture ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetGestureMax(bool gesture)
+ {
+ HasGestureMax = gesture;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.GestureMax, gesture ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetCollision(bool collision)
+ {
+ HasCollision = collision;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Collision, collision ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetCustom(bool custom)
+ {
+ HasCustom = custom;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Custom, custom ? 1 : 0);
+ UpdateState();
+ }
+
+ public virtual void SetVoiceCommand(bool voice)
+ {
+ HasVoiceCommand = voice;
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Custom, voice ? 1 : 0);
+ UpdateState();
+ }
+
+ ///
+ /// a public way to set state directly
+ ///
+ ///
+ ///
+ public void SetState(InteractableStates.InteractableStateEnum state, bool value)
+ {
+ if (StateManager != null)
+ {
+ StateManager.SetStateValue(state, value ? 1 : 0);
+ }
+
+ UpdateState();
+ }
+
+ ///
+ /// runs the state logic and sets state based on the current state values
+ ///
+ protected virtual void UpdateState()
+ {
+ StateManager.CompareStates();
+ }
+
+ #endregion SetButtonStates
+
+ #region PointerManagement
+
+ ///
+ /// Adds a pointer to pointers, means a pointer is giving focus
+ ///
+ ///
+ private void AddPointer(IMixedRealityPointer pointer)
+ {
+ if (!pointers.Contains(pointer))
+ {
+ pointers.Add(pointer);
+ }
+ }
+
+ ///
+ /// Removes a pointer, lost focus
+ ///
+ ///
+ private void RemovePointer(IMixedRealityPointer pointer)
+ {
+ pointers.Remove(pointer);
+ }
+
+ #endregion PointerManagement
+
+ #region MixedRealityFocusHandlers
+
+ public void OnFocusEnter(FocusEventData eventData)
+ {
+ if (!CanInteract())
+ {
+ return;
+ }
+
+ AddPointer(eventData.Pointer);
+ SetFocus(pointers.Count > 0);
+ }
+
+ public void OnFocusExit(FocusEventData eventData)
+ {
+ if (!CanInteract() && !HasFocus)
+ {
+ return;
+ }
+
+ RemovePointer(eventData.Pointer);
+ SetFocus(pointers.Count > 0);
+ }
+
+ public void OnBeforeFocusChange(FocusEventData eventData)
+ {
+ //do nothing
+ }
+
+ public void OnFocusChanged(FocusEventData eventData)
+ {
+ //do nothing
+ }
+
+ #endregion MixedRealityFocusHandlers
+
+ #region MixedRealityPointerHandlers
+
+ ///
+ /// pointer up event has fired
+ ///
+ ///
+ public void OnPointerUp(MixedRealityPointerEventData eventData)
+ {
+ pointerInputAction = eventData.MixedRealityInputAction;
+ if ((!CanInteract() && !HasPress))
+ {
+ return;
+ }
+
+ if (ShouldListen(eventData.MixedRealityInputAction))
+ {
+ SetPress(false);
+ }
+ }
+
+ ///
+ /// Pointer down event has fired
+ ///
+ ///
+ public void OnPointerDown(MixedRealityPointerEventData eventData)
+ {
+ pointerInputAction = eventData.MixedRealityInputAction;
+ if (!CanInteract())
+ {
+ return;
+ }
+
+ if (ShouldListen(eventData.MixedRealityInputAction))
+ {
+ SetPress(true);
+ }
+ }
+
+ public void OnPointerClicked(MixedRealityPointerEventData eventData)
+ {
+ // let the Input Handlers know what the pointer action is
+ if (eventData != null)
+ {
+ pointerInputAction = eventData.MixedRealityInputAction;
+ }
+
+ // check to see if is global or focus - or - if is global, pointer event does not fire twice - or - input event is not taking these actions already
+ if (!CanInteract() || (IsGlobal && (inputTimer != null || GlobalClickOrder[1] == 1)))
+ {
+ return;
+ }
+
+ if (StateManager != null)
+ {
+ if (eventData != null && ShouldListen(eventData.MixedRealityInputAction))
+ {
+ if (GlobalClickOrder[1] == 0)
+ {
+ GlobalClickOrder[0] = 1;
+ }
+ IncreaseDimensionIndex();
+ SendOnClick(eventData.Pointer);
+ SetVisited(true);
+ StartInputTimer(false);
+ }
+ else if (eventData == null && (HasFocus || IsGlobal)) // handle brute force
+ {
+ if (GlobalClickOrder[1] == 0)
+ {
+ GlobalClickOrder[0] = 1;
+ }
+ IncreaseDimensionIndex();
+ StartGlobalVisual(false);
+ SendOnClick(null);
+ SetVisited(true);
+ StartInputTimer(false);
+ }
+ }
+ }
+
+ ///
+ /// Starts a timer to check if input is in progress
+ /// - Make sure global pointer events are not double firing
+ /// - Make sure Global Input events are not double firing
+ /// - Make sure pointer events are not duplicating an input event
+ ///
+ ///
+ protected void StartInputTimer(bool isInput = false)
+ {
+ if (IsGlobal || isInput)
+ {
+ if (inputTimer != null)
+ {
+ StopCoroutine(inputTimer);
+ inputTimer = null;
+ }
+
+ inputTimer = StartCoroutine(InputDownTimer(clickTime));
+ }
+ }
+
+ #endregion MixedRealityPointerHandlers
+
+ #region MixedRealityInputHandlers
+
+ ///
+ /// Used for click events for actions not processed by pointer events
+ ///
+ ///
+ public void OnInputUp(InputEventData eventData)
+ {
+ // check global and focus
+ if (!CanInteract())
+ {
+ return;
+ }
+
+ if (StateManager != null)
+ {
+ // check if the InputAction matches - and - if the pointer event did not fire first or is handling these actions,
+ if (eventData != null && ShouldListen(eventData.MixedRealityInputAction) && inputTimer != null && (eventData.MixedRealityInputAction != pointerInputAction || pointerInputAction == MixedRealityInputAction.None))
+ {
+ if (GlobalClickOrder[0] == 0)
+ {
+ GlobalClickOrder[1] = 1;
+ }
+ StopCoroutine(inputTimer);
+ inputTimer = null;
+ SetPress(false);
+
+ IncreaseDimensionIndex();
+ SendOnClick(null);
+ SetVisited(true);
+ }
+ }
+ }
+
+ ///
+ /// Used to handle global events really, using pointer events for most things
+ ///
+ ///
+ public void OnInputDown(InputEventData eventData)
+ {
+ if (!CanInteract())
+ {
+ return;
+ }
+
+ if (StateManager != null)
+ {
+ if (eventData != null && ShouldListen(eventData.MixedRealityInputAction) && (eventData.MixedRealityInputAction != pointerInputAction || pointerInputAction == MixedRealityInputAction.None))
+ {
+ StartInputTimer(true);
+ SetPress(true);
+ }
+ }
+ }
+
+ public void OnInputPressed(InputEventData eventData)
+ {
+ // ignore
+ }
+
+ public void OnPositionInputChanged(InputEventData eventData)
+ {
+ // ignore
+ }
+
+ #endregion MixedRealityInputHandlers
+
+ #region DimensionsUtilities
+
+ ///
+ /// A public way to access the current dimension
+ ///
+ ///
+ public int GetDimensionIndex()
+ {
+ return dimensionIndex;
+ }
+
+ ///
+ /// a public way to increase a dimension, for cycle button
+ ///
+ public void IncreaseDimension()
+ {
+ IncreaseDimensionIndex();
+ }
+
+ ///
+ /// a public way to decrease the dimension
+ ///
+ public void DecreaseDimension()
+ {
+ int index = dimensionIndex;
+ if (index > 0)
+ {
+ index--;
+ }
+ else
+ {
+ index = Dimensions - 1;
+ }
+
+ SetDimensionIndex(index);
+ }
+
+ ///
+ /// a public way to set the dimension index
+ ///
+ ///
+ public void SetDimensionIndex(int index)
+ {
+ int currentIndex = dimensionIndex;
+ if (index < Dimensions)
+ {
+ dimensionIndex = index;
+
+ if (currentIndex != dimensionIndex)
+ {
+ FilterThemesByDimensions();
+ forceUpdate = true;
+ }
+ }
+ }
+
+ ///
+ /// internal deminsion cycling
+ ///
+ protected void IncreaseDimensionIndex()
+ {
+ int currentIndex = dimensionIndex;
+
+ if (dimensionIndex < Dimensions - 1)
+ {
+ dimensionIndex++;
+ }
+ else
+ {
+ dimensionIndex = 0;
+ }
+
+ if(currentIndex != dimensionIndex)
+ {
+ FilterThemesByDimensions();
+ forceUpdate = true;
+ }
+ }
+
+ #endregion DimensionsUtilities
+
+ #region InteractableUtilities
+
+ ///
+ /// Assigns the InputAction based on the InputActionId
+ ///
+ ///
+ ///
+ public static MixedRealityInputAction ResolveInputAction(int index)
+ {
+ MixedRealityInputAction[] actions = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions;
+ index = Mathf.Clamp(index, 0, actions.Length - 1);
+ return actions[index];
+ }
+
+ ///
+ /// Get the themes based on the current dimesionIndex
+ ///
+ protected void FilterThemesByDimensions()
+ {
+ runningThemesList = new List();
+
+ for (int i = 0; i < runningProfileSettings.Count; i++)
+ {
+ ProfileSettings settings = runningProfileSettings[i];
+ ThemeSettings themeSettings = settings.ThemeSettings[dimensionIndex];
+ for (int j = 0; j < themeSettings.Settings.Count; j++)
+ {
+ runningThemesList.Add(themeSettings.Settings[j].Theme);
+ }
+ }
+ }
+
+ ///
+ /// Based on inputAction and state, should this interaction listen to this input?
+ ///
+ ///
+ ///
+ protected virtual bool ShouldListen(MixedRealityInputAction action)
+ {
+ bool isListening = HasFocus || IsGlobal;
+ return action == InputAction && isListening;
+ }
+
+ ///
+ /// Based on button settings and state, should this button listen to input?
+ ///
+ ///
+ protected virtual bool CanInteract()
+ {
+ if (!Enabled)
+ {
+ return false;
+ }
+
+ if (Dimensions > 1 && ((dimensionIndex != Dimensions -1 & !CanSelect) || (dimensionIndex == Dimensions - 1 & !CanDeselect)) )
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ ///
+ /// call onClick methods on receivers or IInteractableHandlers
+ ///
+ protected void SendOnClick(IMixedRealityPointer pointer)
+ {
+ OnClick.Invoke();
+
+ for (int i = 0; i < Events.Count; i++)
+ {
+ if (Events[i].Receiver != null)
+ {
+ Events[i].Receiver.OnClick(StateManager, this, pointer);
+ }
+ }
+
+ for (int i = 0; i < handlers.Count; i++)
+ {
+ if (handlers[i] != null)
+ {
+ handlers[i].OnClick(StateManager, this, pointer);
+ }
+ }
+ }
+
+ ///
+ /// sets some visual states for automating button events like clicks from a keyword
+ ///
+ ///
+ protected void StartGlobalVisual(bool voiceCommand = false)
+ {
+ if (voiceCommand)
+ {
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.VoiceCommand, 1);
+ }
+
+ SetVisited(true);
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Focus, 1);
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Pressed, 1);
+ UpdateState();
+
+ if (globalTimer != null)
+ {
+ StopCoroutine(globalTimer);
+ }
+
+ globalTimer = StartCoroutine(GlobalVisualReset(clickTime));
+ }
+
+ ///
+ /// Clears up any automated visual states
+ ///
+ ///
+ ///
+ protected IEnumerator GlobalVisualReset(float time)
+ {
+ yield return new WaitForSeconds(time);
+
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.VoiceCommand, 0);
+ if (!HasFocus) {
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Focus, 0);
+ }
+
+ if (!HasPress)
+ {
+ StateManager.SetStateValue(InteractableStates.InteractableStateEnum.Pressed, 0);
+ }
+
+ UpdateState();
+
+ globalTimer = null;
+ }
+
+ ///
+ /// A timer for the MixedRealityInputHandlers, clicks should occur within a certain time.
+ ///
+ ///
+ ///
+ protected IEnumerator InputDownTimer(float time)
+ {
+ yield return new WaitForSeconds(time);
+ inputTimer = null;
+ }
+
+ #endregion InteractableUtilities
+
+ #region VoiceCommands
+
+ ///
+ /// Voice commands from MixedRealitySpeechCommandProfile, keyword recognized
+ /// requires isGlobal
+ ///
+ ///
+ public void OnSpeechKeywordRecognized(SpeechEventData eventData)
+ {
+ if (Enabled && ShouldListen(eventData.MixedRealityInputAction))
+ {
+ StartGlobalVisual(true);
+
+ IncreaseDimensionIndex();
+ SendVoiceCommands(eventData.RecognizedText, 0, 1);
+
+ SendOnClick(null);
+ }
+ }
+
+ ///
+ /// Setup voice commands from component VoiceCommand input field
+ /// Supports toggles using a comma to seperate keywords, no spaces please
+ ///
+ protected void SetupVoiceCommand()
+ {
+#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+ if (!string.IsNullOrEmpty(VoiceCommand) && VoiceCommand.Length > 2)
+ {
+ voiceCommands = new string[] { VoiceCommand };
+ if (VoiceCommand.IndexOf(",") > -1)
+ {
+ voiceCommands = VoiceCommand.Split(',');
+ }
+
+ recognitionConfidenceLevel = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.SpeechCommandsProfile.SpeechRecognitionConfidenceLevel;
+
+ if(keywordRecognizer == null)
+ {
+ keywordRecognizer = new KeywordRecognizer(voiceCommands, (ConfidenceLevel)recognitionConfidenceLevel);
+ keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized;
+ keywordRecognizer.Start();
+ }
+ }
+#endif // UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+ }
+
+ protected void StopVoiceCommand()
+ {
+#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+ if (keywordRecognizer != null)
+ {
+ if (keywordRecognizer.IsRunning)
+ {
+ keywordRecognizer.Stop();
+ }
+ keywordRecognizer.OnPhraseRecognized -= KeywordRecognizer_OnPhraseRecognized;
+ keywordRecognizer.Dispose();
+ keywordRecognizer = null;
+ }
+#endif // UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+ }
+
+#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+ ///
+ /// Local voice commands registered on the interactable Voice Command Field
+ ///
+ ///
+ protected void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
+ {
+ if (args.text == VoiceCommand && (!RequiresFocus || HasFocus) && CanInteract())
+ {
+
+ if (CanInteract())
+ {
+ StartGlobalVisual(true);
+
+ int index = GetVoiceCommandIndex(args.text);
+ if (voiceCommands.Length < 2 || Dimensions < 2)
+ {
+ IncreaseDimensionIndex();
+ }
+ else
+ {
+ SetDimensionIndex(index);
+ }
+ SendVoiceCommands(args.text, index, voiceCommands.Length);
+
+ SendOnClick(null);
+ }
+ }
+ }
+#endif // UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN
+
+ ///
+ /// call OnVoinceCommand methods on receivers or IInteractableHandlers
+ ///
+ protected void SendVoiceCommands(string command, int index, int length)
+ {
+ for (int i = 0; i < Events.Count; i++)
+ {
+ if (Events[i].Receiver != null)
+ {
+ Events[i].Receiver.OnVoiceCommand(StateManager, this, command, index, length);
+ }
+ }
+
+ for (int i = 0; i < handlers.Count; i++)
+ {
+ if (handlers[i] != null)
+ {
+ handlers[i].OnVoiceCommand(StateManager, this, command, index, length);
+ }
+ }
+ }
+
+ ///
+ /// checks the voiceCommand array for a keyword and returns it's index
+ ///
+ ///
+ ///
+ protected int GetVoiceCommandIndex(string command)
+ {
+ if(voiceCommands.Length > 1)
+ {
+ for (int i = 0; i < voiceCommands.Length; i++)
+ {
+ if(command == voiceCommands[i])
+ {
+ return i;
+ }
+ }
+ }
+
+ return 0;
+ }
+
+ #endregion VoiceCommands
+
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Interactable.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Interactable.cs.meta
new file mode 100644
index 00000000000..f90b152c35f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Interactable.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 1410eac1ae94b4d4492a09cc368e152c
+timeCreated: 1517593873
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/InteractableToggleCollection.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/InteractableToggleCollection.cs
new file mode 100644
index 00000000000..188a458d687
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/InteractableToggleCollection.cs
@@ -0,0 +1,86 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Iteractable
+{
+ ///
+ /// A way to control a list of radial type buttons or tabs
+ ///
+ public class InteractableToggleCollection : MonoBehaviour
+ {
+ [Tooltip("Interactables that will be managed by this controller")]
+ public Interactable.Interactable[] ToggleList;
+
+ [Tooltip("Currently selected index or default starting index")]
+ public int CurrentIndex;
+
+ [Tooltip("exposed selection changed event")]
+ public UnityEvent OnSelectionEvents;
+
+ private void OnEnable()
+ {
+ for (int i = 0; i < ToggleList.Length; ++i)
+ {
+ int itemIndex = i;
+ // add selection event handler to each button
+ ToggleList[i].OnClick.AddListener(() => OnSelection(itemIndex));
+ ToggleList[i].CanDeselect = false;
+ }
+
+ OnSelection(CurrentIndex, true);
+ }
+
+ ///
+ /// Sets the selected index and selected Interactive
+ ///
+ ///
+ public void SetSelection(int index)
+ {
+ if (!isActiveAndEnabled ||
+ (index < 0 || ToggleList.Length <= index))
+ {
+ return;
+ }
+
+ ToggleList[index].OnPointerClicked(null);
+ }
+
+ ///
+ /// Set the toggle state of each button based on the selected item
+ ///
+ ///
+ ///
+ protected virtual void OnSelection(int index, bool force = false)
+ {
+ for (int i = 0; i < ToggleList.Length; ++i)
+ {
+ if (i != index)
+ {
+ ToggleList[i].SetDimensionIndex(0);
+ }
+ }
+
+ CurrentIndex = index;
+
+ if (force)
+ {
+ ToggleList[index].SetDimensionIndex(1);
+ }
+ else
+ {
+ OnSelectionEvents.Invoke();
+ }
+ }
+
+ private void OnDestroy()
+ {
+ for (int i = 0; i < ToggleList.Length; ++i)
+ {
+ int itemIndex = i;
+ ToggleList[i].OnClick.RemoveListener(() => OnSelection(itemIndex));
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/InteractableToggleCollection.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/InteractableToggleCollection.cs.meta
new file mode 100644
index 00000000000..b171b2ac5c2
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/InteractableToggleCollection.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8adeb8b21c6d120408d0aea984f6b26d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout.meta
new file mode 100644
index 00000000000..2e69bf0110b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9ddfd232168027c4cafbefbc4b995694
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSize.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSize.cs
new file mode 100644
index 00000000000..2a231b147f2
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSize.cs
@@ -0,0 +1,105 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Layout
+{
+ ///
+ /// The base layout component for a button or UI elements - easily build UI with Unity Primitives.
+ /// Helps to create consistancy by using values that scale to a designer's 2D layout program.
+ /// Based on a ratio of 2048 pixels for 1 meter of surface area.
+ ///
+ /// Use case:
+ /// A designer creates a concept image of UI based on a 2048 artboard.
+ /// 2048 pixels is a nice resolution for a meter of content, two meters away from the user.
+ /// The FOV of the HoloLens is about 1 meter wide at 2 meters from the user meaning the
+ /// designer can assume an image area of 2048 x 1184 pixels at 2 meters from the user.
+ /// The designer or engineer can take pixel based redlines and create UI at 1:1 scale.
+ ///
+ [ExecuteInEditMode]
+ public class ButtonBackgroundSize : MonoBehaviour
+ {
+ ///
+ /// A scale factor for button layouts, default is based on 2048 pixels to 1 meter.
+ /// Similar to values used in designer and 2D art programs and helps create consistancy across teams.
+ ///
+ [Tooltip("A pixel to Unity unit conversion, Default: 2048x2048 pixels covers a 1x1 Unity Unit or default primitive size")]
+ [SerializeField]
+ private float BasePixelScale = 2048;
+
+ ///
+ /// The size of this object in 3D space, based on the scale factor.
+ /// This value should match 2D design pixel values.
+ ///
+ [Tooltip("Size of the primitive using pixel values from our design program.")]
+ [SerializeField]
+ protected Vector3 ItemSize = new Vector3(594, 246, 15);
+
+ ///
+ /// These scales are applied in Unity Editor only while doing layout.
+ /// Turn off for responsive UI type results when editing ItemSize during runtime.
+ /// Scales will be applied each frame.
+ ///
+ [Tooltip("should this only run in Edit mode, to avoid updating as items move?")]
+ [SerializeField]
+ private bool OnlyInEditMode = true;
+
+ ///
+ /// Set the size at Runtime or through code
+ ///
+ ///
+ public void SetSize(Vector3 size)
+ {
+ ItemSize = size;
+ }
+
+ ///
+ /// Get the current size
+ ///
+ ///
+ public Vector3 GetSize()
+ {
+ return ItemSize;
+ }
+
+ ///
+ /// Get the base pixel scale
+ ///
+ ///
+ public float GetBasePixelScale()
+ {
+ return BasePixelScale;
+ }
+
+ ///
+ /// Set the base pixel scale
+ ///
+ ///
+ public void SetBasePixelScale(float scale)
+ {
+ BasePixelScale = scale;
+ }
+
+ ///
+ /// Set the size
+ ///
+ private void UpdateSize()
+ {
+ Vector3 newScale = new Vector3(ItemSize.x / BasePixelScale, ItemSize.y / BasePixelScale, ItemSize.z / BasePixelScale);
+ transform.localScale = newScale;
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ // only run in edit mode?
+ if ((Application.isPlaying && !OnlyInEditMode) || (!Application.isPlaying))
+ {
+ UpdateSize();
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSize.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSize.cs.meta
new file mode 100644
index 00000000000..f6475b6a756
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSize.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 18715f9b6e2e86c42902a892a35010dc
+timeCreated: 1509372333
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSizeOffset.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSizeOffset.cs
new file mode 100644
index 00000000000..27de87a2e20
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSizeOffset.cs
@@ -0,0 +1,113 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Layout
+{
+ ///
+ /// Scales an object relative the scale of the Anchor Transform
+ /// Works best when using with Layout3DPixelSize, but not requied - See LayoutPixelSize for more info
+ /// Use Case:
+ /// Create a button, then add another element who's size should maintain a consistent size relative to the Anchor.
+ /// Like creating a button background using a Cube and ButtonSize. The add another Cube that is 40 pixels smaller than the background.
+ /// Event if the background changes size, this element will remain 40 pixels smaller.
+ ///
+ [ExecuteInEditMode]
+ public class ButtonBackgroundSizeOffset : MonoBehaviour
+ {
+ ///
+ /// A scale factor for layout3D, default is based on 2048 pixels to 1 meter.
+ /// Similar to values used in designer and 2D art programs and helps create consistancy across teams.
+ ///
+ [Tooltip("A pixel to Unity unit conversion, Default: 2048x2048 pixels covers a 1x1 Unity Unit or default primitive size")]
+ [SerializeField]
+ private float BasePixelScale = 2048;
+
+ ///
+ /// The transform to offset from.
+ ///
+ [Tooltip("The transform this object should be linked and aligned to")]
+ [SerializeField]
+ private Transform AnchorTransform;
+
+ ///
+ /// Make this object's size scaled relative to the Anchor's size
+ ///
+ [Tooltip(" How much to scale compared to the Anchor's size")]
+ [SerializeField]
+ private Vector3 Scale = Vector3.one;
+
+ ///
+ /// Create an absolute size difference from the Anchor
+ ///
+ [Tooltip("That absolute amount to offset the scale")]
+ [SerializeField]
+ private Vector3 Offset;
+
+ ///
+ /// These scales and positions are applied in Unity Editor only while doing layout.
+ /// Turn off for responsive UI type results when editing ItemSize during runtime.
+ /// Scales will be applied each frame.
+ ///
+ [Tooltip("should this only run in Edit mode, to avoid updating as items move?")]
+ [SerializeField]
+ private bool OnlyInEditMode = true;
+
+ ///
+ /// Set the objects scale relative to the Anchor
+ ///
+ ///
+ public void SetScale(Vector3 scale)
+ {
+ Scale = scale;
+ }
+
+ // Get the current scale relative to the Anchor
+ public Vector3 GetScale()
+ {
+ return Scale;
+ }
+
+ ///
+ /// Set a consistent offset value from the Anchor
+ ///
+ ///
+ public void SetOffset(Vector3 offset)
+ {
+ Offset = offset;
+ }
+
+ ///
+ /// Get the current offset value
+ ///
+ ///
+ public Vector3 GetSOffset()
+ {
+ return Offset;
+ }
+
+ ///
+ /// Set the size based on the Achor's size and the buffers
+ ///
+ private void UpdateSize()
+ {
+ Vector3 scale = Vector3.Scale(AnchorTransform.localScale, Scale) + Offset / BasePixelScale;
+ transform.localScale = scale;
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ if (AnchorTransform != null)
+ {
+ if ((Application.isPlaying && !OnlyInEditMode) || (!Application.isPlaying))
+ {
+ UpdateSize();
+ }
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSizeOffset.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSizeOffset.cs.meta
new file mode 100644
index 00000000000..abb0d5b4a87
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSizeOffset.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: b7450a7c8dc3a5f4bb0bab1dc83c3354
+timeCreated: 1509373352
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBorder.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBorder.cs
new file mode 100644
index 00000000000..55b897a40cb
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBorder.cs
@@ -0,0 +1,122 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Layout
+{
+ ///
+ /// Use a Unity primitive Cube or cylindar as a border segment relative to the scale of the AnchorTransform
+ /// Use with ButtonSize on the component and the Anchor for consistent results
+ /// Works best when using with ButtonSize, but not requied - See ButtonSize for more info.
+ ///
+ [ExecuteInEditMode]
+ public class ButtonBorder : MonoBehaviour
+ {
+ ///
+ /// A scale factor for button layouts, default is based on 2048 pixels to 1 meter.
+ /// Similar to values used in designer and 2D art programs and helps create consistancy across teams.
+ ///
+ /// Use Case:
+ /// A designer created a basic button background using a Cube and ButtonSize
+ /// Add some more borders, using more cubes or cylenders, that will scale to the edges of the background size
+ ///
+ [Tooltip("A pixel to Unity unit conversion, Default: 2048x2048 pixels covers a 1x1 Unity Unit or default primitive size")]
+ [SerializeField]
+ private float BasePixelScale = 2048;
+
+ ///
+ /// The transform to offset from.
+ ///
+ [Tooltip("The transform this object should be linked and aligned to")]
+ [SerializeField]
+ private Transform AnchorTransform;
+
+ ///
+ /// Width of the border
+ ///
+ [Tooltip("Size of the border using pixel values from our design program.")]
+ [SerializeField]
+ private float Weight = 10;
+
+ ///
+ /// The depth of the border
+ ///
+ [Tooltip("Depth of the border using pixel values from our design program.")]
+ [SerializeField]
+ private float Depth = 20;
+
+ ///
+ /// A vector that sets the border position to the edge of the Anchor and
+ /// scales it to match the edge it is assigned to.
+ /// Ex: Vector3.right would place the border on the Anchor's right side.
+ ///
+ [Tooltip("Where to set this object's center point in relation to the Anchor's center point")]
+ [SerializeField]
+ private Vector3 Alignment;
+
+ ///
+ /// An absolute value to offset the border from the Anchor's edge
+ ///
+ [Tooltip("That absolute amount to offset the position")]
+ [SerializeField]
+ private Vector3 PositionOffset;
+
+ ///
+ /// Overlap the edge it is assigned to so there are not gaps in the corners
+ ///
+ [Tooltip("Will extend the height or width of the border to create corners.")]
+ [SerializeField]
+ private bool AddCorner = true;
+
+ ///
+ /// These scales and positions are applied in Unity Editor only while doing layout.
+ /// Turn off for responsive UI type results when editing ItemSize during runtime.
+ /// Scales will be applied each frame.
+ ///
+ [Tooltip("should this only run in Edit mode, to avoid updating as items move?")]
+ [SerializeField]
+ private bool OnlyInEditMode = true;
+
+ ///
+ /// Set the size and position
+ ///
+ private void UpdateSize()
+ {
+ Vector3 weighDireciton = new Vector3(Mathf.Abs(Alignment.x), Mathf.Abs(Alignment.y), Mathf.Abs(Alignment.z));
+ Vector3 scale = weighDireciton * (Weight / BasePixelScale);// Vector3.Scale(Alignment, Scale) + Offset / BasePixelScale;
+ float size = ((Weight * 2) / BasePixelScale);
+ if (scale.x > scale.y)
+ {
+ scale.y = AddCorner ? AnchorTransform.localScale.y + size : AnchorTransform.localScale.y;
+ }
+ else
+ {
+ scale.x = AddCorner ? AnchorTransform.localScale.x + size : AnchorTransform.localScale.x;
+ }
+ scale.z = Depth / BasePixelScale;
+
+ transform.localScale = scale;
+
+ Vector3 startPosition = AnchorTransform.localPosition;
+
+ if (AnchorTransform != this.transform)
+ {
+ startPosition = AnchorTransform.localPosition + (Vector3.Scale(AnchorTransform.localScale * 0.5f, Alignment));
+ }
+
+ transform.localPosition = startPosition + (Alignment * Weight * 0.5f / BasePixelScale) + (PositionOffset / BasePixelScale);
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ if ((Application.isPlaying && !OnlyInEditMode) || (!Application.isPlaying))
+ {
+ UpdateSize();
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBorder.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBorder.cs.meta
new file mode 100644
index 00000000000..3beed3d8d60
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Layout/ButtonBorder.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e284c41c72ed62145b1ae10cfedd1196
+timeCreated: 1509375612
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Profile.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Profile.meta
new file mode 100644
index 00000000000..6fe37fb2714
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Profile.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2a2648112cfdf664e88921aaf6ae99a8
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Profile/InteractableProfileItem.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Profile/InteractableProfileItem.cs
new file mode 100644
index 00000000000..ae296f5b07b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Profile/InteractableProfileItem.cs
@@ -0,0 +1,79 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Profile
+{
+ ///
+ /// The foundation of profiles that exist on an Interactable
+ /// Profiles pair themes with the objects they manipulate, based on state changes
+ ///
+
+ [System.Serializable]
+ public class InteractableProfileItem
+ {
+ [System.Serializable]
+ public struct ThemeLists
+ {
+ public List Types;
+ public List Names;
+ }
+
+ public GameObject Target;
+ public List Themes;
+ public bool HadDefaultTheme;
+
+ ///
+ /// Get a list of themes
+ ///
+ ///
+ public static ThemeLists GetThemeTypes()
+ {
+ List themeTypes = new List();
+ List names = new List();
+
+ var assemblies = AppDomain.CurrentDomain.GetAssemblies();
+ foreach (var assembly in assemblies)
+ {
+ foreach (Type type in assembly.GetTypes())
+ {
+ TypeInfo info = type.GetTypeInfo();
+ if (info.BaseType != null && (info.BaseType.Equals(typeof(InteractableThemeBase)) || info.BaseType.Equals(typeof(InteractableShaderTheme)) || info.BaseType.Equals(typeof(InteractableColorTheme))))
+ {
+ themeTypes.Add(type);
+ names.Add(type.Name);
+ }
+ }
+ }
+
+ ThemeLists lists = new ThemeLists();
+ lists.Types = themeTypes;
+ lists.Names = names;
+ return lists;
+ }
+
+ ///
+ /// Get a new theme instance and load it with settings
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static InteractableThemeBase GetTheme(InteractableThemePropertySettings settings, GameObject host, ThemeLists lists)
+ {
+ int index = InspectorField.ReverseLookup(settings.Name, lists.Names.ToArray());
+ Type themeType = lists.Types[index];
+ InteractableThemeBase theme = (InteractableThemeBase)Activator.CreateInstance(themeType, host);
+ theme.Init(host ,settings);
+ return theme;
+ }
+
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Profile/InteractableProfileItem.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Profile/InteractableProfileItem.cs.meta
new file mode 100644
index 00000000000..4a993502251
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Profile/InteractableProfileItem.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 9446c142fb59889488c56d475a512d60
+timeCreated: 1517596056
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Simulation.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Simulation.meta
new file mode 100644
index 00000000000..d91da364dcd
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Simulation.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 092fb0ecfb7f4294db1e065c03192351
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Simulation/InteractablePointerSimulator.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Simulation/InteractablePointerSimulator.cs
new file mode 100644
index 00000000000..3d86ac4c4c0
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Simulation/InteractablePointerSimulator.cs
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Simulation
+{
+ ///
+ /// A way to test button state feedback while in the editor
+ ///
+
+ public class InteractablePointerSimulator : MonoBehaviour
+ {
+ public Interactable Button;
+ public bool Focus;
+ public bool Down;
+ public bool Disabled;
+ public bool Clicked;
+
+ private bool? hasFocus;
+ private bool? hasDown;
+ private bool? isDisabled;
+ private bool isClicked = false;
+
+ private void Update()
+ {
+ if (Button == null)
+ {
+ return;
+ }
+
+ if (hasFocus != Focus)
+ {
+ Button.SetFocus(Focus);
+ hasFocus = Focus;
+ }
+
+ if (hasDown != Down)
+ {
+ Button.SetPress(Down);
+ hasDown = Down;
+ }
+
+ if (isDisabled != Disabled)
+ {
+ Button.SetDisabled(Disabled);
+ isDisabled = Disabled;
+ }
+
+ if (isClicked != Clicked)
+ {
+ Button.OnPointerClicked(null);
+ Clicked = isClicked;
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Simulation/InteractablePointerSimulator.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Simulation/InteractablePointerSimulator.cs.meta
new file mode 100644
index 00000000000..dcd7453f159
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Simulation/InteractablePointerSimulator.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: afb3d203ea3ffed4dba2fddd2771cc64
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States.meta
new file mode 100644
index 00000000000..c818ab48583
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1d1aad1f279a14e4183efa1675c7b747
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStateModel.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStateModel.cs
new file mode 100644
index 00000000000..b5399d8cae7
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStateModel.cs
@@ -0,0 +1,169 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States
+{
+ ///
+ /// State data model, state management and comparison instrucitons
+ ///
+
+ /*
+ * Have an enum with all the button states -
+ * Create a list using the enums as the state type -
+ * Setup the bit and index automatically -
+ * Store the values for all the states -
+ * Have a sub state with only the states we care about -
+ * On update, set those states and update the current state
+ * The other states can be checked anytime through the Interactive.
+ *
+ */
+
+ [System.Serializable]
+ public class State
+ {
+ public string Name;
+ public int Index;
+ public int Bit;
+ public int Value;
+ public int ActiveIndex;
+
+ public override string ToString()
+ {
+ return Name;
+ }
+
+ public int ToInt()
+ {
+ return Index;
+ }
+
+ public int ToBit()
+ {
+ return Bit;
+ }
+ }
+
+ public abstract class InteractableStateModel
+ {
+ protected State currentState;
+ protected List stateList;
+ protected State[] allStates;
+
+ public void ImportStates(List states)
+ {
+ stateList = states;
+ for (int i = 0; i < stateList.Count; i++)
+ {
+ State state = allStates[stateList[i].Index];
+ state.ActiveIndex = i;
+ }
+ }
+
+ public virtual void SetStateOn(int index)
+ {
+ if (allStates.Length > index && index > 0)
+ {
+ State state = allStates[index];
+ state.Value = 1;
+ SetStateListValue(state.ActiveIndex, 1);
+ }
+ }
+
+ public virtual void SetStateOff(int index)
+ {
+ if (allStates.Length > index && index > 0)
+ {
+ State state = allStates[index];
+ state.Value = 0;
+ SetStateListValue(state.ActiveIndex, 0);
+ }
+ }
+
+ public virtual void SetStateValue(int index, int value)
+ {
+ if (allStates.Length > index && index > 0)
+ {
+ State state = allStates[index];
+ state.Value = value;
+ SetStateListValue(state.ActiveIndex, value);
+ }
+ }
+
+ protected virtual void SetStateListValue(int index, int value)
+ {
+ if (index < stateList.Count && index > -1)
+ {
+ State state = stateList[index];
+ state.Value = value;
+ }
+ }
+
+ public int GetStateValue(int index)
+ {
+ if (allStates.Length > index && index > 0)
+ {
+ State state = allStates[index];
+ return state.Value;
+ }
+ return 0;
+ }
+
+ public State GetState(int index)
+ {
+ if (allStates.Length > index && index > 0)
+ {
+ State state = allStates[index];
+ return state;
+ }
+ return new State();
+ }
+
+ public InteractableStateModel(State defaultState)
+ {
+ currentState = defaultState;
+ }
+
+ public virtual void SetSate(State state)
+ {
+ currentState = state;
+ }
+
+ public virtual State CurrentState()
+ {
+ return currentState;
+ }
+
+ public abstract State CompareStates();
+
+ public abstract State[] GetStates();
+
+ protected int GetBit()
+ {
+ int bit = 0;
+ int bitCount = 0;
+ for (int i = 0; i < stateList.Count; i++)
+ {
+ if (i == 0)
+ {
+ bit += 1;
+ }
+ else
+ {
+ bit += bit;
+ }
+
+ if (stateList[i].Value > 0)
+ {
+ bitCount += bit;
+ }
+ }
+
+ return bitCount;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStateModel.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStateModel.cs.meta
new file mode 100644
index 00000000000..7fd42c50908
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStateModel.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 7a0f8c39636b13b4ba67918d9c2f8cb1
+timeCreated: 1520370863
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStates.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStates.cs
new file mode 100644
index 00000000000..a75d53afa1f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStates.cs
@@ -0,0 +1,146 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States
+{
+ ///
+ /// list of Interactable states and basic comparison
+ ///
+ public class InteractableStates : InteractableStateModel
+ {
+ public enum InteractableStateEnum {
+ ///
+ /// Default state, nothing happening
+ ///
+ Default = 0,
+ ///
+ /// Looking at object
+ ///
+ Focus,
+ ///
+ /// Looking at object and finger down
+ ///
+ Pressed,
+ ///
+ /// Looking at and finger up
+ ///
+ Targeted,
+ ///
+ /// Not looking at it and finger is up
+ ///
+ Interactive,
+ ///
+ /// Looking at button finger down
+ ///
+ ObservationTargeted,
+ ///
+ /// Not looking at it and finger down
+ ///
+ Observation,
+ ///
+ /// Button in a disabled state
+ ///
+ Disabled,
+ ///
+ /// Button was clicked already
+ ///
+ Visited,
+ ///
+ /// Botton is toggled state, on/off
+ ///
+ Toggled,
+ ///
+ /// Gesture is happening, Move
+ ///
+ Gesture,
+ ///
+ /// Gesture has reached it's max movement
+ ///
+ GestureMax,
+ ///
+ /// There is a collision
+ ///
+ Collision,
+ /// ///
+ /// Voice command happened
+ ///
+ VoiceCommand,
+ ///
+ /// Custom placeholder for anything
+ ///
+ Custom
+
+ }
+
+ protected new State[] allStates = new State[14]
+ {
+ new State(){ Index = 0, Name = "Default", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 1, Name = "Focus", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 2, Name = "Pressed", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 3, Name = "Targeted", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 4, Name = "Interactive", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 5, Name = "ObservationTargeted", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 6, Name = "Observation", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 7, Name = "Disabled", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 8, Name = "Visited", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 9, Name = "Toggled", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 10, Name = "Gesture", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 11, Name = "GestureMax", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 12, Name = "Collision", ActiveIndex = -1, Bit = 0, Value = 0},
+ new State(){ Index = 13, Name = "Custom", ActiveIndex = -1, Bit = 0, Value = 0}
+ };
+
+ public InteractableStates(State defaultState) : base(defaultState)
+ {
+ base.allStates = allStates;
+ }
+
+ public virtual void SetStateOn(InteractableStateEnum state)
+ {
+ SetStateOn((int)state);
+ }
+
+ public virtual void SetStateOff(InteractableStateEnum state)
+ {
+ SetStateOff((int)state);
+ }
+
+ public virtual void SetStateValue(InteractableStateEnum state, int value)
+ {
+ SetStateValue((int)state, value);
+ }
+
+ public State GetState(InteractableStateEnum state)
+ {
+ return GetState((int)state);
+ }
+
+ // compares all the state values and returns a state based on bitwise comparison
+ public override State CompareStates()
+ {
+ int bit = GetBit();
+
+ currentState = stateList[0];
+
+ for (int i = stateList.Count-1; i > -1; i--)
+ {
+ if (bit >= stateList[i].Bit)
+ {
+ currentState = stateList[i];
+ break;
+ }
+ }
+
+ return currentState;
+ }
+
+ public override State[] GetStates()
+ {
+ return stateList.ToArray();
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStates.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStates.cs.meta
new file mode 100644
index 00000000000..7dc6d6e4aa4
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/InteractableStates.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 33bc56363b94dc34b9fff3f146b5b52b
+timeCreated: 1520547556
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/States.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/States.cs
new file mode 100644
index 00000000000..2ccad1416a0
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/States.cs
@@ -0,0 +1,92 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States
+{
+ [CreateAssetMenu(fileName = "States", menuName = "Mixed Reality Toolkit/Interactable/State", order = 1)]
+ public class States : ScriptableObject
+ {
+ public List StateList;
+ public int DefaultIndex = 0;
+ public Type StateType;
+ public string[] StateOptions;
+ public Type[] StateTypes;
+ public string StateLogicName = "InteractableStates";
+
+ //!!! finish making states work, they shoulg initiate the type and run the logic during play mode.
+ private void OnEnable()
+ {
+ SetupStateOptions();
+ }
+
+ public State[] GetStates()
+ {
+ return StateList.ToArray();
+ }
+
+ public InteractableStates SetupLogic()
+ {
+ int index = ReverseLookup(StateLogicName, StateOptions);
+ StateType = StateTypes[index];
+ InteractableStates stateLogic = (InteractableStates)Activator.CreateInstance(StateType, StateList[DefaultIndex]);
+ List stateListCopy = new List();
+ for (int i = 0; i < StateList.Count; i++)
+ {
+ State state = new State();
+ state.ActiveIndex = StateList[i].ActiveIndex;
+ state.Bit = StateList[i].Bit;
+ state.Index = StateList[i].Index;
+ state.Name = StateList[i].Name;
+ state.Value = StateList[i].Value;
+ stateListCopy.Add(state);
+ }
+ stateLogic.ImportStates(stateListCopy);
+
+ return stateLogic;
+ }
+
+ public void SetupStateOptions()
+ {
+ List stateTypes = new List();
+ List names = new List();
+
+
+ var assemblies = AppDomain.CurrentDomain.GetAssemblies();
+ foreach (var assembly in assemblies)
+ {
+ foreach (Type type in assembly.GetTypes())
+ {
+ TypeInfo info = type.GetTypeInfo();
+ if (info.BaseType != null && (info.BaseType.Equals(typeof(InteractableStates)) || type.Equals(typeof(InteractableStates))))
+ {
+ stateTypes.Add(type);
+ names.Add(type.Name);
+ }
+ }
+ }
+
+ StateOptions = names.ToArray();
+ StateTypes = stateTypes.ToArray();
+ }
+
+ // redundant method, put in a utils with static methods!!!
+ public static int ReverseLookup(string option, string[] options)
+ {
+ for (int i = 0; i < options.Length; i++)
+ {
+ if (options[i] == option)
+ {
+ return i;
+ }
+ }
+
+ return 0;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/States.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/States.cs.meta
new file mode 100644
index 00000000000..9fd26a0c6b1
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/States/States.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: c33e3b76d6c5c0e48bb3b6ee686c7fd6
+timeCreated: 1522264080
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes.meta
new file mode 100644
index 00000000000..90694f44adf
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2fba988d030ba9544b1df2ee210c6061
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableActivateTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableActivateTheme.cs
new file mode 100644
index 00000000000..076b3b78e28
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableActivateTheme.cs
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableActivateTheme : InteractableThemeBase
+ {
+
+ public InteractableActivateTheme()
+ {
+ Types = new Type[] { typeof(Transform) };
+ Name = "Activate Theme";
+ NoEasing = true;
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Activate",
+ Type = InteractableThemePropertyValueTypes.Bool,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Bool = true }
+ });
+ }
+
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ start.Bool = Host.activeSelf;
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ Host.SetActive(property.Values[index].Bool);
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableActivateTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableActivateTheme.cs.meta
new file mode 100644
index 00000000000..0e08d929c0a
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableActivateTheme.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 03636e749c9b4f34ba642bf285eb6853
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAnimatorTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAnimatorTheme.cs
new file mode 100644
index 00000000000..ddffbd3bd7a
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAnimatorTheme.cs
@@ -0,0 +1,52 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ ///
+ /// Uses Animator to control Interacable feedback based on state changes.
+ ///
+ public class InteractableAnimatorTheme : InteractableThemeBase
+ {
+ private int lastIndex = 0;
+
+ public InteractableAnimatorTheme()
+ {
+ Types = new Type[] { typeof(Transform) };
+ Name = "AnimatorTheme";
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Animator Trigger",
+ Type = InteractableThemePropertyValueTypes.AnimatorTrigger,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { String = "Default" }
+ });
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ start.String = property.Values[lastIndex].String;
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ if(lastIndex != index)
+ {
+ Animator controller = Host.GetComponent();
+ if(controller != null)
+ {
+ controller.SetTrigger(property.Values[index].String);
+ }
+ lastIndex = index;
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAnimatorTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAnimatorTheme.cs.meta
new file mode 100644
index 00000000000..d621e0c469f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAnimatorTheme.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 197f79dc62ef6844ea03fafd2aa8364d
+timeCreated: 1521585568
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAudioTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAudioTheme.cs
new file mode 100644
index 00000000000..5ff1ec95414
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAudioTheme.cs
@@ -0,0 +1,52 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableAudioTheme : InteractableThemeBase
+ {
+
+ public InteractableAudioTheme()
+ {
+ Types = new Type[] { typeof(Transform) };
+ Name = "Audio Theme";
+ NoEasing = true;
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Audio",
+ Type = InteractableThemePropertyValueTypes.AudioClip,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { AudioClip = null }
+ });
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ AudioSource audioSource = Host.GetComponentInChildren();
+ if (audioSource != null)
+ {
+ start.AudioClip = audioSource.clip;
+ }
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ AudioSource audioSource = Host.GetComponentInChildren();
+ if (audioSource == null)
+ {
+ audioSource = Host.AddComponent();
+ }
+
+ audioSource.clip = property.Values[index].AudioClip;
+ audioSource.Play();
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAudioTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAudioTheme.cs.meta
new file mode 100644
index 00000000000..952ac799aef
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableAudioTheme.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a2e429ec975e1284784b7c37604ffa54
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorChildrenTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorChildrenTheme.cs
new file mode 100644
index 00000000000..f8c2b2213f7
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorChildrenTheme.cs
@@ -0,0 +1,94 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableColorChildrenTheme : InteractableShaderTheme
+ {
+ public struct BlocksAndRenderer
+ {
+ public MaterialPropertyBlock Block;
+ public Renderer Renderer;
+ }
+
+ private List propertyBlocks;
+
+ public InteractableColorChildrenTheme()
+ {
+ Types = new Type[] { };
+ Name = "Color Children Theme";
+ ThemeProperties = new List();
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Color",
+ Type = InteractableThemePropertyValueTypes.Color,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Color = Color.white}
+ });
+ }
+
+ public override void Init(GameObject host, InteractableThemePropertySettings settings)
+ {
+ base.Init(host, settings);
+
+ shaderProperties = new List();
+ for (int i = 0; i < ThemeProperties.Count; i++)
+ {
+ InteractableThemeProperty prop = ThemeProperties[i];
+ if (prop.ShaderOptions.Count > 0)
+ {
+ shaderProperties.Add(prop.ShaderOptions[prop.PropId]);
+ }
+ }
+
+ propertyBlocks = new List();
+ Renderer[] list = host.GetComponentsInChildren();
+ for (int i = 0; i < list.Length; i++)
+ {
+ MaterialPropertyBlock block = InteractableThemeShaderUtils.GetMaterialPropertyBlock(list[i].gameObject, shaderProperties.ToArray());
+ BlocksAndRenderer bAndR = new BlocksAndRenderer();
+ bAndR.Renderer = list[i];
+ bAndR.Block = block;
+
+ propertyBlocks.Add(bAndR);
+ }
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue color = new InteractableThemePropertyValue();
+
+ string propId = property.GetShaderPropId();
+
+ if (propertyBlocks.Count > 0)
+ {
+ BlocksAndRenderer bAndR = propertyBlocks[0];
+ color.Color = bAndR.Block.GetVector(propId);
+ }
+
+ return color;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ Color color = Color.Lerp(property.StartValue.Color, property.Values[index].Color, percentage);
+
+ string propId = property.GetShaderPropId();
+
+ for (int i = 0; i < propertyBlocks.Count; i++)
+ {
+ BlocksAndRenderer bAndR = propertyBlocks[i];
+ bAndR.Block.SetColor(propId, color);
+ bAndR.Renderer.SetPropertyBlock(bAndR.Block);
+ propertyBlocks[i] = bAndR;
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorChildrenTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorChildrenTheme.cs.meta
new file mode 100644
index 00000000000..1bc8f8924e8
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorChildrenTheme.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: dc7efa4405d407344b754102a556bcc2
+timeCreated: 1521585549
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorTheme.cs
new file mode 100644
index 00000000000..2061f901988
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorTheme.cs
@@ -0,0 +1,70 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableColorTheme : InteractableShaderTheme
+ {
+ public InteractableColorTheme()
+ {
+ Types = new Type[] { typeof(Renderer), typeof(TextMesh), typeof(Text) };
+ Name = "Color Theme";
+ ThemeProperties = new List();
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Color",
+ Type = InteractableThemePropertyValueTypes.Color,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Color = Color.white}
+ });
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue color = new InteractableThemePropertyValue();
+ TextMesh mesh = Host.GetComponent();
+ if (mesh != null)
+ {
+ color.Color = mesh.color;
+ return color;
+ }
+
+ Text text = Host.GetComponent();
+ if (text != null)
+ {
+ color.Color = text.color;
+ return color;
+ }
+
+ return base.GetProperty(property);
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ Color color = Color.Lerp(property.StartValue.Color, property.Values[index].Color, percentage);
+ TextMesh mesh = Host.GetComponent();
+ if (mesh != null)
+ {
+ mesh.color = color;
+ return;
+ }
+
+ Text text = Host.GetComponent();
+ if (text != null)
+ {
+ text.color = color;
+ return;
+ }
+
+ base.SetValue(property, index, percentage);
+
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorTheme.cs.meta
new file mode 100644
index 00000000000..4c71adee533
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableColorTheme.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 7dc492dd8854e9742968df968c8a4e6a
+timeCreated: 1521585549
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableMaterialTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableMaterialTheme.cs
new file mode 100644
index 00000000000..fae1bd2edbd
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableMaterialTheme.cs
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableMaterialTheme : InteractableThemeBase
+ {
+ private Material material = null;
+
+ public InteractableMaterialTheme()
+ {
+ Types = new Type[] { typeof(Renderer) };
+ Name = "Material Theme";
+ NoEasing = true;
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Material",
+ Type = InteractableThemePropertyValueTypes.Material,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Material = null }
+ });
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ Renderer renderer = Host.GetComponent();
+ material = renderer.material;
+ start.Material = material;
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ Host.SetActive(property.Values[index].Bool);
+
+ Renderer renderer = Host.GetComponent();
+ material = property.Values[index].Material;
+ renderer.material = material;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableMaterialTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableMaterialTheme.cs.meta
new file mode 100644
index 00000000000..68d386e90ea
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableMaterialTheme.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 753b19bc23979944a9c4b2ae0b205dcd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableOffsetTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableOffsetTheme.cs
new file mode 100644
index 00000000000..4898bfaf81e
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableOffsetTheme.cs
@@ -0,0 +1,47 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableOffsetTheme : InteractableThemeBase
+ {
+ private Vector3 startPosition;
+
+ public InteractableOffsetTheme()
+ {
+ Types = new Type[] { typeof(Transform) };
+ Name = "Offset Theme";
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Offset",
+ Type = InteractableThemePropertyValueTypes.Vector3,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Vector3 = Vector3.zero }
+ });
+ }
+
+ public override void Init(GameObject host, InteractableThemePropertySettings settings)
+ {
+ base.Init(host, settings);
+ startPosition = Host.transform.localPosition;
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ start.Vector3 = Host.transform.localPosition;
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ Host.transform.localPosition = Vector3.Lerp(property.StartValue.Vector3, startPosition + property.Values[index].Vector3, percentage);
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableOffsetTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableOffsetTheme.cs.meta
new file mode 100644
index 00000000000..f42c13ee842
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableOffsetTheme.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6bc86afbde924cf47baa2f2b652904a2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableRotationTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableRotationTheme.cs
new file mode 100644
index 00000000000..de749614b20
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableRotationTheme.cs
@@ -0,0 +1,40 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableRotationTheme : InteractableThemeBase
+ {
+
+ public InteractableRotationTheme()
+ {
+ Types = new Type[] { typeof(Transform) };
+ Name = "Rotation Theme";
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Rotation",
+ Type = InteractableThemePropertyValueTypes.Vector3,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Vector3 = Vector3.zero }
+ });
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ start.Vector3 = Host.transform.eulerAngles;
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ Host.transform.localRotation = Quaternion.Euler( Vector3.Lerp(property.StartValue.Vector3, property.Values[index].Vector3, percentage));
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableRotationTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableRotationTheme.cs.meta
new file mode 100644
index 00000000000..ca89363e6ce
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableRotationTheme.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5d47e4ab39674504995f00fbe3e9b1a6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableScaleTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableScaleTheme.cs
new file mode 100644
index 00000000000..d94e3689824
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableScaleTheme.cs
@@ -0,0 +1,40 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableScaleTheme : InteractableThemeBase
+ {
+
+ public InteractableScaleTheme()
+ {
+ Types = new Type[] { typeof(Transform) };
+ Name = "Scale Theme";
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Scale",
+ Type = InteractableThemePropertyValueTypes.Vector3,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Vector3 = Vector3.one}
+ });
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ start.Vector3 = Host.transform.localScale;
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ Host.transform.localScale = Vector3.Lerp(property.StartValue.Vector3, property.Values[index].Vector3, percentage);
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableScaleTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableScaleTheme.cs.meta
new file mode 100644
index 00000000000..20f773d4e0d
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableScaleTheme.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 83ec98e429a4ce0478b2068127b23ad4
+timeCreated: 1521585568
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableShaderTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableShaderTheme.cs
new file mode 100644
index 00000000000..437312a5ba4
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableShaderTheme.cs
@@ -0,0 +1,144 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableShaderTheme : InteractableThemeBase
+ {
+ protected MaterialPropertyBlock propertyBlock;
+ protected List shaderProperties;
+
+ public InteractableShaderTheme()
+ {
+ Types = new Type[] { typeof(Renderer) };
+ Name = "Shader Float";
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Shader",
+ Type = InteractableThemePropertyValueTypes.ShaderFloat,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Float = 0}
+ });
+ }
+
+ public override void Init(GameObject host, InteractableThemePropertySettings settings)
+ {
+ base.Init(host, settings);
+
+ shaderProperties = new List();
+ for (int i = 0; i < ThemeProperties.Count; i++)
+ {
+ InteractableThemeProperty prop = ThemeProperties[i];
+ if (prop.ShaderOptions.Count > 0)
+ {
+ shaderProperties.Add(prop.ShaderOptions[prop.PropId]);
+ }
+ }
+
+ propertyBlock = InteractableThemeShaderUtils.GetMaterialPropertyBlock(host, shaderProperties.ToArray());
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ if (Host == null)
+ return;
+
+ string propId = property.GetShaderPropId();
+ float newValue;
+ switch (property.Type)
+ {
+ case InteractableThemePropertyValueTypes.Color:
+ Color newColor = Color.Lerp(property.StartValue.Color, property.Values[index].Color, percentage);
+ propertyBlock = SetColor(propertyBlock, newColor, propId);
+ break;
+ case InteractableThemePropertyValueTypes.ShaderFloat:
+ newValue = LerpFloat(property.StartValue.Float, property.Values[index].Float, percentage);
+ propertyBlock = SetFloat(propertyBlock, newValue, propId);
+ break;
+ case InteractableThemePropertyValueTypes.shaderRange:
+ newValue = LerpFloat(property.StartValue.Float, property.Values[index].Float, percentage);
+ propertyBlock = SetFloat(propertyBlock, newValue, propId);
+ break;
+ default:
+ break;
+ }
+
+ SetPropertyBlock(Host, propertyBlock);
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ if (Host == null)
+ return new InteractableThemePropertyValue();
+
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ string propId = property.GetShaderPropId();
+ switch (property.Type)
+ {
+ case InteractableThemePropertyValueTypes.Color:
+ start.Color = propertyBlock.GetVector(propId);
+ break;
+ case InteractableThemePropertyValueTypes.ShaderFloat:
+ start.Float = propertyBlock.GetFloat(propId);
+ break;
+ case InteractableThemePropertyValueTypes.shaderRange:
+ start.Float = propertyBlock.GetFloat(propId);
+ break;
+ default:
+ break;
+ }
+
+ return start;
+ }
+
+ public static float GetFloat(GameObject host, string propId)
+ {
+ if (host == null)
+ return 0;
+
+ MaterialPropertyBlock block = InteractableThemeShaderUtils.GetPropertyBlock(host);
+ return block.GetFloat(propId);
+ }
+
+ public static void SetPropertyBlock(GameObject host, MaterialPropertyBlock block)
+ {
+ Renderer renderer = host.GetComponent();
+ renderer.SetPropertyBlock(block);
+ }
+
+ public static MaterialPropertyBlock SetFloat(MaterialPropertyBlock block, float value, string propId)
+ {
+ if (block == null)
+ return null;
+
+ block.SetFloat(propId, value);
+ return block;
+ }
+
+ public static Color GetColor(GameObject host, string propId)
+ {
+ if (host == null)
+ return Color.white;
+
+ MaterialPropertyBlock block = InteractableThemeShaderUtils.GetPropertyBlock(host);
+ return block.GetVector(propId);
+ }
+
+ public static MaterialPropertyBlock SetColor(MaterialPropertyBlock block, Color color, string propId)
+ {
+ if (block == null)
+ return null;
+
+ block.SetColor(propId, color);
+ return block;
+
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableShaderTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableShaderTheme.cs.meta
new file mode 100644
index 00000000000..4bad65df1a7
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableShaderTheme.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: dc19f31962a76c64c92d61f6ab4059fa
+timeCreated: 1521585610
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableStringTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableStringTheme.cs
new file mode 100644
index 00000000000..e4a365a9bdd
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableStringTheme.cs
@@ -0,0 +1,68 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ ///
+ /// Change string on a text object based on state
+ ///
+ public class InteractableStringTheme : InteractableThemeBase
+ {
+ public InteractableStringTheme()
+ {
+ Types = new Type[] { typeof(TextMesh), typeof(Text) };
+ Name = "String Theme";
+ NoEasing = true;
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "String",
+ Type = InteractableThemePropertyValueTypes.String,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { String = "" }
+
+ });
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ start.String = "";
+ TextMesh mesh = Host.GetComponentInChildren();
+ if (mesh != null)
+ {
+ start.String = mesh.text;
+ return start;
+ }
+
+ Text text = Host.GetComponentInChildren();
+ if (mesh != null)
+ {
+ start.String = text.text;
+ }
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ TextMesh mesh = Host.GetComponentInChildren();
+ if(mesh != null)
+ {
+ mesh.text = property.Values[index].String;
+ return;
+ }
+
+ Text text = Host.GetComponentInChildren();
+ if (mesh != null)
+ {
+ text.text = property.Values[index].String;
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableStringTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableStringTheme.cs.meta
new file mode 100644
index 00000000000..882f24ad10a
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableStringTheme.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bc6077f5a2ce06245b4f9848991e82cd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableTextureTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableTextureTheme.cs
new file mode 100644
index 00000000000..829edc855de
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableTextureTheme.cs
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class InteractableTextureTheme : InteractableThemeBase
+ {
+ private MaterialPropertyBlock propertyBlock;
+
+ public InteractableTextureTheme()
+ {
+ Types = new Type[] { typeof(Renderer) };
+ Name = "Texture Theme";
+ NoEasing = true;
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Texture",
+ Type = InteractableThemePropertyValueTypes.Texture,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Texture = null }
+ });
+ }
+
+ public override void Init(GameObject host, InteractableThemePropertySettings settings)
+ {
+ base.Init(host, settings);
+ propertyBlock = InteractableThemeShaderUtils.GetMaterialPropertyBlock(host, new ShaderProperties[0]);
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+ start.Texture = propertyBlock.GetTexture("_MainTex");
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ propertyBlock.SetTexture("_MainTex", property.Values[index].Texture);
+
+ Renderer renderer = Host.GetComponent();
+ renderer.SetPropertyBlock(propertyBlock);
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableTextureTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableTextureTheme.cs.meta
new file mode 100644
index 00000000000..be8efbd42a1
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableTextureTheme.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 59b929867f0141b408b1f648af3c2c82
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeBase.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeBase.cs
new file mode 100644
index 00000000000..71a914a7529
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeBase.cs
@@ -0,0 +1,120 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ ///
+ /// Base class for themes
+ ///
+
+ public abstract class InteractableThemeBase
+ {
+ public Type[] Types;
+ public string Name = "Base Theme";
+ public List ThemeProperties = new List();
+ public List CustomSettings = new List();
+ public GameObject Host;
+ public Easing Ease;
+ public bool NoEasing;
+ public bool Loaded;
+
+ private bool hasFirstState = false;
+
+ private int lastState = -1;
+
+ //! find a way to set the default values of the properties, like scale should be Vector3.one
+ // these should be custom, per theme
+
+ public abstract void SetValue(InteractableThemeProperty property, int index, float percentage);
+
+ public abstract InteractableThemePropertyValue GetProperty(InteractableThemeProperty property);
+
+ public virtual void Init(GameObject host, InteractableThemePropertySettings settings)
+ {
+ Host = host;
+
+ for (int i = 0; i < settings.Properties.Count; i++)
+ {
+ InteractableThemeProperty prop = ThemeProperties[i];
+ prop.ShaderOptionNames = settings.Properties[i].ShaderOptionNames;
+ prop.ShaderOptions = settings.Properties[i].ShaderOptions;
+ prop.PropId = settings.Properties[i].PropId;
+ prop.Values = settings.Properties[i].Values;
+
+
+ ThemeProperties[i] = prop;
+ }
+
+ Ease = CopyEase(settings.Easing);
+ Ease.Stop();
+
+ Loaded = true;
+
+ }
+
+ protected float LerpFloat(float s, float e, float t)
+ {
+ return (e - s) * t + s;
+ }
+
+ protected int LerpInt(int s, int e, float t)
+ {
+ return Mathf.RoundToInt((e - s) * t) + s;
+ }
+
+ protected Easing CopyEase(Easing ease)
+ {
+ Easing newEase = new Easing();
+ newEase.Curve = ease.Curve;
+ newEase.Enabled = ease.Enabled;
+ newEase.LerpTime = ease.LerpTime;
+
+ return newEase;
+ }
+
+ public virtual void OnUpdate(int state, bool force = false)
+ {
+ if(state != lastState || force)
+ {
+ for (int i = 0; i < ThemeProperties.Count; i++)
+ {
+ InteractableThemeProperty current = ThemeProperties[i];
+ current.StartValue = GetProperty(current);
+ if (hasFirstState || force)
+ {
+ Ease.Start();
+ SetValue(current, state, Ease.GetCurved());
+ hasFirstState = true;
+ }
+ else
+ {
+ SetValue(current, state, 1);
+ if(i >= ThemeProperties.Count - 1)
+ {
+ hasFirstState = true;
+ }
+ }
+ ThemeProperties[i] = current;
+ }
+
+ lastState = state;
+ }
+ else if(Ease.Enabled && Ease.IsPlaying())
+ {
+ Ease.OnUpdate();
+ for (int i = 0; i < ThemeProperties.Count; i++)
+ {
+ InteractableThemeProperty current = ThemeProperties[i];
+ SetValue(current, state, Ease.GetCurved());
+ }
+ }
+
+ lastState = state;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeBase.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeBase.cs.meta
new file mode 100644
index 00000000000..52be76d7286
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeBase.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 343b108f70cde364b8835724119634a2
+timeCreated: 1521584713
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeProperty.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeProperty.cs
new file mode 100644
index 00000000000..54d0a4c4cae
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeProperty.cs
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ ///
+ /// Base class for themes
+ ///
+
+ [System.Serializable]
+ public class InteractableThemeProperty
+ {
+ public string Name;
+ public InteractableThemePropertyValueTypes Type;
+ public List Values;
+ public InteractableThemePropertyValue StartValue;
+ public int PropId;
+ public List ShaderOptions;
+ public List ShaderOptionNames;
+ public InteractableThemePropertyValue Default;
+ public string ShaderName;
+
+ public string GetShaderPropId()
+ {
+ if (ShaderOptionNames.Count > PropId)
+ {
+ return ShaderOptionNames[PropId];
+ }
+
+ return "_Color";
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeProperty.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeProperty.cs.meta
new file mode 100644
index 00000000000..efff6885e52
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeProperty.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6fe7005b018ec4549b330160980953c0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertySettings.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertySettings.cs
new file mode 100644
index 00000000000..a2a71435a5b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertySettings.cs
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ ///
+ /// list of theme settings to virtualize theme values
+ ///
+ public struct ProfileSettings
+ {
+ public List ThemeSettings;
+ }
+
+ ///
+ /// List of settings that are copied from themes
+ ///
+ public struct ThemeSettings
+ {
+ public List Settings;
+ }
+
+ ///
+ /// A way to cache some serializes values to pass between buttons and handlers
+ ///
+ [System.Serializable]
+ public class ThemeTarget
+ {
+ public List Properties;
+ public GameObject Target;
+ public State[] States;
+ }
+
+ ///
+ /// The main settings found in Themes
+ ///
+ [System.Serializable]
+ public struct InteractableThemePropertySettings
+ {
+ public string Name;
+ public Type Type;
+ public InteractableThemeBase Theme;
+ public List Properties;
+ public List History;
+ public Easing Easing;
+ public bool NoEasing;
+ public bool IsValid;
+ public ThemeTarget ThemeTarget;
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertySettings.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertySettings.cs.meta
new file mode 100644
index 00000000000..cf73dba160d
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertySettings.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 950b2eae85d159946a773e5eaf48e909
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValue.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValue.cs
new file mode 100644
index 00000000000..17f1ca234aa
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValue.cs
@@ -0,0 +1,35 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ ///
+ /// Base values of a theme property, used for serialization
+ ///
+
+ [System.Serializable]
+ public class InteractableThemePropertyValue
+ {
+ public string Name;
+ public string String;
+ public bool Bool;
+ public int Int;
+ public float Float;
+ public Texture Texture;
+ public Material Material;
+ public GameObject GameObject;
+ public Vector2 Vector2;
+ public Vector3 Vector3;
+ public Vector4 Vector4;
+ public Color Color;
+ public Quaternion Quaternion;
+ public AudioClip AudioClip;
+ public Animation Animation;
+ }
+}
+
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValue.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValue.cs.meta
new file mode 100644
index 00000000000..fdce60964a6
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValue.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 192ea49831e32224196156b4c9a08ae8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValueTypes.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValueTypes.cs
new file mode 100644
index 00000000000..061d4cce5c7
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValueTypes.cs
@@ -0,0 +1,33 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ ///
+ /// Theme property value types used for converting theme values back and forth from serialized objects
+ ///
+ public enum InteractableThemePropertyValueTypes {
+ Float,
+ Int,
+ Color,
+ ShaderFloat,
+ shaderRange,
+ Vector2,
+ Vector3,
+ Vector4,
+ Quaternion,
+ Texture,
+ Material,
+ AudioClip,
+ Animaiton,
+ GameObject,
+ String,
+ Bool,
+ AnimatorTrigger
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValueTypes.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValueTypes.cs.meta
new file mode 100644
index 00000000000..650a206c89f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemePropertyValueTypes.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a92477936f659bd48a0da90946af9b36
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeShaderUtils.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeShaderUtils.cs
new file mode 100644
index 00000000000..f5735e08067
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeShaderUtils.cs
@@ -0,0 +1,129 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ // Basic value types within a shader
+ public enum ShaderPropertyType { Color, Float, Range, TexEnv, Vector, None }
+
+ ///
+ /// property format for each property
+ ///
+ [System.Serializable]
+ public struct ShaderProperties
+ {
+ public string Name;
+ public ShaderPropertyType Type;
+ public Vector2 Range;
+ }
+
+ ///
+ /// collection of properties found in a shader
+ ///
+ public struct ShaderInfo
+ {
+ public ShaderProperties[] ShaderOptions;
+ public string Name;
+ }
+
+
+ ///
+ /// Collection of shader and material utilities
+ ///
+
+ public class InteractableThemeShaderUtils : MonoBehaviour
+ {
+ ///
+ /// Get a MaterialPropertyBlock and copy the designated properties
+ ///
+ ///
+ ///
+ ///
+ public static MaterialPropertyBlock GetMaterialPropertyBlock(GameObject gameObject, ShaderProperties[] props)
+ {
+ MaterialPropertyBlock materialBlock = GetPropertyBlock(gameObject);
+ Renderer renderer = gameObject.GetComponent();
+
+ float value;
+ if (renderer != null)
+ {
+ Material material = GetValidMaterial(renderer);
+ if (material != null)
+ {
+ for (int i = 0; i < props.Length; i++)
+ {
+ ShaderProperties prop = props[i];
+ switch (props[i].Type)
+ {
+ case ShaderPropertyType.Color:
+ Color color = material.GetVector(prop.Name);
+ materialBlock.SetColor(prop.Name, color);
+ break;
+ case ShaderPropertyType.Float:
+ value = material.GetFloat(prop.Name);
+ materialBlock.SetFloat(prop.Name, value);
+ break;
+ case ShaderPropertyType.Range:
+ value = material.GetFloat(prop.Name);
+ materialBlock.SetFloat(prop.Name, value);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ gameObject.GetComponent().SetPropertyBlock(materialBlock);
+ }
+
+ return materialBlock;
+ }
+
+ ///
+ /// Get the MaterialPropertyBlock from a renderer on a gameObject
+ ///
+ ///
+ ///
+ public static MaterialPropertyBlock GetPropertyBlock(GameObject gameObject)
+ {
+ MaterialPropertyBlock materialBlock = new MaterialPropertyBlock();
+ Renderer renderer = gameObject.GetComponent();
+ if (renderer != null)
+ {
+ renderer.GetPropertyBlock(materialBlock);
+ }
+ return materialBlock;
+ }
+
+ ///
+ /// Grab a valid Material from an object, if in the editor, use the shared material
+ ///
+ ///
+ ///
+ public static Material GetValidMaterial(Renderer renderer)
+ {
+ Material material = null;
+
+ if (renderer != null)
+ {
+#if UNITY_EDITOR
+ if (!Application.isPlaying)
+ {
+ material = renderer.sharedMaterial;
+ }
+ else
+ {
+ material = renderer.material;
+ }
+#else
+ material = renderer.material;
+#endif
+ }
+ return material;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeShaderUtils.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeShaderUtils.cs.meta
new file mode 100644
index 00000000000..41530b2b438
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/InteractableThemeShaderUtils.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dd8cab623ce8c7446b02ebd59f37978a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/ScaleOffsetColorTheme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/ScaleOffsetColorTheme.cs
new file mode 100644
index 00000000000..00b53962ac7
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/ScaleOffsetColorTheme.cs
@@ -0,0 +1,93 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ public class ScaleOffsetColorTheme : InteractableColorTheme
+ {
+ protected Vector3 startPosition;
+ protected Vector3 startScale;
+
+ public override void Init(GameObject host, InteractableThemePropertySettings settings)
+ {
+ base.Init(host, settings);
+ startPosition = Host.transform.localPosition;
+ startScale = Host.transform.localScale;
+ }
+
+ public ScaleOffsetColorTheme()
+ {
+ Types = new Type[] { typeof(Transform), typeof(TextMesh), typeof(TextMesh), typeof(Renderer) };
+ Name = "Default: Scale, Offset, Color";
+ ThemeProperties = new List();
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Scale",
+ Type = InteractableThemePropertyValueTypes.Vector3,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Vector3 = Vector3.one }
+ });
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Offset",
+ Type = InteractableThemePropertyValueTypes.Vector3,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Vector3 = Vector3.zero }
+ });
+ ThemeProperties.Add(
+ new InteractableThemeProperty()
+ {
+ Name = "Color",
+ Type = InteractableThemePropertyValueTypes.Color,
+ Values = new List(),
+ Default = new InteractableThemePropertyValue() { Color = Color.white }
+ });
+ }
+
+ public override InteractableThemePropertyValue GetProperty(InteractableThemeProperty property)
+ {
+ InteractableThemePropertyValue start = new InteractableThemePropertyValue();
+
+ switch (property.Name)
+ {
+ case "Scale":
+ start.Vector3 = Host.transform.localScale;
+ break;
+ case "Offset":
+ start.Vector3 = Host.transform.localPosition;
+ break;
+ case "Color":
+ start = base.GetProperty(property);
+ break;
+ default:
+ break;
+ }
+ return start;
+ }
+
+ public override void SetValue(InteractableThemeProperty property, int index, float percentage)
+ {
+ switch (property.Name)
+ {
+ case "Scale":
+ Host.transform.localScale = Vector3.Lerp(property.StartValue.Vector3, Vector3.Scale(startScale, property.Values[index].Vector3), percentage);
+ break;
+ case "Offset":
+ Host.transform.localPosition = Vector3.Lerp(property.StartValue.Vector3, startPosition + property.Values[index].Vector3, percentage);
+ break;
+ case "Color":
+ base.SetValue(property, index, percentage);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/ScaleOffsetColorTheme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/ScaleOffsetColorTheme.cs.meta
new file mode 100644
index 00000000000..af34757ba56
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/ScaleOffsetColorTheme.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: ebb83dc6dbbdb624d99eb29108c5b991
+timeCreated: 1521585502
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/Theme.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/Theme.cs
new file mode 100644
index 00000000000..173e7ff79c6
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/Theme.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.
+
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ ///
+ /// Theme scriptableObject for loading theme settings
+ ///
+
+ [CreateAssetMenu(fileName = "Theme", menuName = "Mixed Reality Toolkit/Interactable/Theme", order = 1)]
+ public class Theme : ScriptableObject
+ {
+ public string Name;
+ public List Settings;
+ public List CustomSettings;
+ public States.States States;
+
+ public State[] GetStates()
+ {
+ if (States != null)
+ {
+ return States.GetStates();
+ }
+
+ return new State[0];
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/Theme.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/Theme.cs.meta
new file mode 100644
index 00000000000..07127110aed
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Themes/Theme.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: e7e7db9a2688ed540af9819c456ba2e2
+timeCreated: 1517597617
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States.meta
new file mode 100644
index 00000000000..9ef3f4a91eb
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fdc33d46c1014a143a37c5a7cdce7492
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/DefaultInteractableStates.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/DefaultInteractableStates.asset
new file mode 100644
index 00000000000..9b4d0555157
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/DefaultInteractableStates.asset
@@ -0,0 +1,38 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c33e3b76d6c5c0e48bb3b6ee686c7fd6, type: 3}
+ m_Name: DefaultInteractableStates
+ m_EditorClassIdentifier:
+ StateList:
+ - Name: Default
+ Index: 0
+ Bit: 1
+ Value: 0
+ ActiveIndex: 0
+ - Name: Focus
+ Index: 1
+ Bit: 2
+ Value: 0
+ ActiveIndex: 1
+ - Name: Pressed
+ Index: 2
+ Bit: 4
+ Value: 0
+ ActiveIndex: 2
+ - Name: Disabled
+ Index: 7
+ Bit: 8
+ Value: 0
+ ActiveIndex: 3
+ DefaultIndex: 0
+ StateOptions:
+ - InteractableStates
+ StateLogicName: InteractableStates
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/DefaultInteractableStates.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/DefaultInteractableStates.asset.meta
new file mode 100644
index 00000000000..61805f70e80
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/DefaultInteractableStates.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 5eac1712038236e4b8ffdb3893804fe1
+timeCreated: 1522264535
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/HoloLensInteractableStates.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/HoloLensInteractableStates.asset
new file mode 100644
index 00000000000..088f27c0bfb
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/HoloLensInteractableStates.asset
@@ -0,0 +1,48 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c33e3b76d6c5c0e48bb3b6ee686c7fd6, type: 3}
+ m_Name: HoloLensInteractableStates
+ m_EditorClassIdentifier:
+ StateList:
+ - Name: Interactive
+ Index: 0
+ Bit: 1
+ Value: 0
+ ActiveIndex: 0
+ - Name: Observation
+ Index: 1
+ Bit: 2
+ Value: 0
+ ActiveIndex: 1
+ - Name: Targeted
+ Index: 2
+ Bit: 4
+ Value: 0
+ ActiveIndex: 2
+ - Name: ObservationTargeted
+ Index: 7
+ Bit: 8
+ Value: 0
+ ActiveIndex: 3
+ - Name: Pressed
+ Index: 7
+ Bit: 16
+ Value: 0
+ ActiveIndex: 4
+ - Name: Disabled
+ Index: 7
+ Bit: 32
+ Value: 0
+ ActiveIndex: 5
+ DefaultIndex: 0
+ StateOptions:
+ - InteractableStates
+ StateLogicName: InteractableStates
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/HoloLensInteractableStates.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/HoloLensInteractableStates.asset.meta
new file mode 100644
index 00000000000..134a7d1108f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/States/HoloLensInteractableStates.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 2adb1a81e63716d4a904392a7ee65b16
+timeCreated: 1522264535
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures.meta
new file mode 100644
index 00000000000..255e333fa01
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 99fa5219312082746a21e867334ae5dc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarAdjust.png b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarAdjust.png
new file mode 100644
index 00000000000..c5c8af4e0d4
Binary files /dev/null and b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarAdjust.png differ
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarAdjust.png.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarAdjust.png.meta
new file mode 100644
index 00000000000..4c0186ad8c8
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarAdjust.png.meta
@@ -0,0 +1,84 @@
+fileFormatVersion: 2
+guid: bb1b4a9241fba2042a81428e917afd5d
+TextureImporter:
+ fileIDToRecycleName: {}
+ externalObjects: {}
+ serializedVersion: 5
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 2
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarDone.png b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarDone.png
new file mode 100644
index 00000000000..2555f07f4cf
Binary files /dev/null and b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarDone.png differ
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarDone.png.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarDone.png.meta
new file mode 100644
index 00000000000..5b6ecb0fea4
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarDone.png.meta
@@ -0,0 +1,84 @@
+fileFormatVersion: 2
+guid: b5066c514f7f02f4292cf842f3c8b75f
+TextureImporter:
+ fileIDToRecycleName: {}
+ externalObjects: {}
+ serializedVersion: 5
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 2
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarHide.png b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarHide.png
new file mode 100644
index 00000000000..2bcf8f94a90
Binary files /dev/null and b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarHide.png differ
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarHide.png.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarHide.png.meta
new file mode 100644
index 00000000000..1cdd6c9351e
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarHide.png.meta
@@ -0,0 +1,84 @@
+fileFormatVersion: 2
+guid: d74cdc58c5d172a469ea5ca987eb17f6
+TextureImporter:
+ fileIDToRecycleName: {}
+ externalObjects: {}
+ serializedVersion: 5
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 2
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarShow.png b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarShow.png
new file mode 100644
index 00000000000..43a7438a51e
Binary files /dev/null and b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarShow.png differ
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarShow.png.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarShow.png.meta
new file mode 100644
index 00000000000..e7740e91beb
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Textures/AppBarShow.png.meta
@@ -0,0 +1,84 @@
+fileFormatVersion: 2
+guid: 0bee624b4074e5445929e56287795085
+TextureImporter:
+ fileIDToRecycleName: {}
+ externalObjects: {}
+ serializedVersion: 5
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 2
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes.meta
new file mode 100644
index 00000000000..7e7b4521a8b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 86c2310036f39a74996874f7ee7ebb75
+folderAsset: yes
+timeCreated: 1517596159
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/AnimatorTheme.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/AnimatorTheme.asset
new file mode 100644
index 00000000000..36af6115f55
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/AnimatorTheme.asset
@@ -0,0 +1,746 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: AnimatorTheme
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableAnimatorTheme
+ Properties:
+ - Name: Animator Trigger
+ Type: 16
+ Values:
+ - Name: Default
+ String: Default
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String: Focus
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String: Pressed
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String: Disabled
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.005}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Animation
+ Type: 12
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Animation
+ Type: 14
+ Values:
+ - Name:
+ String: Default
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Focus
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Press
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Disabled
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Animator
+ Type: 14
+ Values:
+ - Name:
+ String: Default
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Focus
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Pressed
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Disabled
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ EaseValues: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/AnimatorTheme.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/AnimatorTheme.asset.meta
new file mode 100644
index 00000000000..f4e7211a260
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/AnimatorTheme.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c786ef085bfd755409c87a7eadcbb450
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackground.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackground.asset
new file mode 100644
index 00000000000..9dac554de01
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackground.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ButtonBackground
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.005}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.7058824, g: 0.7058824, b: 0.7058824, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackground.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackground.asset.meta
new file mode 100644
index 00000000000..d3ad91cc5a7
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackground.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 61962e4d95d843842bb2dee96b41da6c
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackgroundSelected.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackgroundSelected.asset
new file mode 100644
index 00000000000..ee2b04e1a6d
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackgroundSelected.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ButtonBackgroundSelected
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.005}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.1764706, g: 0.49019608, b: 0.6039216, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0.65259945, b: 0.8018868, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.09019608, g: 0.4392157, b: 0.5647059, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackgroundSelected.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackgroundSelected.asset.meta
new file mode 100644
index 00000000000..16065475aa3
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBackgroundSelected.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 435bbaee4d9763b4891ab39b7462ec31
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBorders.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBorders.asset
new file mode 100644
index 00000000000..5a531004322
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBorders.asset
@@ -0,0 +1,449 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ButtonBorders
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableColorChildrenTheme
+ Properties:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.28627452, g: 0.28627452, b: 0.28627452, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.28627452, g: 0.28627452, b: 0.28627452, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 0
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBorders.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBorders.asset.meta
new file mode 100644
index 00000000000..af65db03418
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBorders.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: b1ef68ffe69fad14a8d8401f7bd17db5
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBordersSelected.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBordersSelected.asset
new file mode 100644
index 00000000000..09d5d8a0ced
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBordersSelected.asset
@@ -0,0 +1,449 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ButtonBordersSelected
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableColorChildrenTheme
+ Properties:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.1764706, g: 0.49019608, b: 0.6039216, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.6004361, g: 0.9028787, b: 0.9716981, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.23549305, g: 0.6892113, b: 0.7924528, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 0
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBordersSelected.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBordersSelected.asset.meta
new file mode 100644
index 00000000000..e8d4197778c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonBordersSelected.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 6309da53723ca964fa65893eb0df5b4e
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabel.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabel.asset
new file mode 100644
index 00000000000..f30195af650
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabel.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ButtonLabel
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.005}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabel.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabel.asset.meta
new file mode 100644
index 00000000000..fc1870080b0
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabel.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 210ecfb82b9f09c4d835184cd0034155
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelColor.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelColor.asset
new file mode 100644
index 00000000000..14ebced3af0
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelColor.asset
@@ -0,0 +1,449 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ButtonLabelColor
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableColorTheme
+ Properties:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3584906, g: 0.3584906, b: 0.3584906, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.18382353, g: 0.18382353, b: 0.18382353, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.005}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 0
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelColor.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelColor.asset.meta
new file mode 100644
index 00000000000..a3bfcd8f116
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelColor.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: afb9a653b3359b345aeb3ab2e0479189
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelSelected.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelSelected.asset
new file mode 100644
index 00000000000..44f40e69eda
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelSelected.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ButtonLabelSelected
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.005}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.73700607, g: 0.87070245, b: 0.9245283, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.508366, g: 0.79805976, b: 0.9056604, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelSelected.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelSelected.asset.meta
new file mode 100644
index 00000000000..843df4e2b30
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ButtonLabelSelected.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 689bdf5999aa8014694da2cb1c1c1a27
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CheeseTheme.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CheeseTheme.asset
new file mode 100644
index 00000000000..90531b522a6
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CheeseTheme.asset
@@ -0,0 +1,390 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: CheeseTheme
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1.1, y: 1.1, z: 1.1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0.9, y: 0.9, z: 0.9}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 0.7647059, b: 0, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 0.61922556, b: 0, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 0.44043308, b: 0, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EmissiveColor
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _RimColor
+ Type: 0
+ Range: {x: 0.5, y: 0.5}
+ - Name: _ClippingPlaneBorderColor
+ Type: 0
+ Range: {x: 0.2, y: 0}
+ - Name: _HoverColorOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _HoverColorOpaqueOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _InnerGlowColor
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EnvironmentColorX
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorY
+ Type: 0
+ Range: {x: 1, y: 0}
+ - Name: _EnvironmentColorZ
+ Type: 0
+ Range: {x: 0, y: 1}
+ ShaderOptionNames:
+ - _Color
+ - _EmissiveColor
+ - _RimColor
+ - _ClippingPlaneBorderColor
+ - _HoverColorOverride
+ - _HoverColorOpaqueOverride
+ - _InnerGlowColor
+ - _EnvironmentColorX
+ - _EnvironmentColorY
+ - _EnvironmentColorZ
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History: []
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.1
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CheeseTheme.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CheeseTheme.asset.meta
new file mode 100644
index 00000000000..b1287c62117
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CheeseTheme.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1872be27ce323c54f93896976d90d5c4
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CoffeeTheme.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CoffeeTheme.asset
new file mode 100644
index 00000000000..f8902433811
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CoffeeTheme.asset
@@ -0,0 +1,390 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: CoffeeTheme
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: -0.4, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.21568628, g: 0.10980392, b: 0.039215688, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.41509432, g: 0.21420433, b: 0.08027767, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.6509434, g: 0.40960306, b: 0.24870951, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EmissiveColor
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _RimColor
+ Type: 0
+ Range: {x: 0.5, y: 0.5}
+ - Name: _ClippingPlaneBorderColor
+ Type: 0
+ Range: {x: 0.2, y: 0}
+ - Name: _HoverColorOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _HoverColorOpaqueOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _InnerGlowColor
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EnvironmentColorX
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorY
+ Type: 0
+ Range: {x: 1, y: 0}
+ - Name: _EnvironmentColorZ
+ Type: 0
+ Range: {x: 0, y: 1}
+ ShaderOptionNames:
+ - _Color
+ - _EmissiveColor
+ - _RimColor
+ - _ClippingPlaneBorderColor
+ - _HoverColorOverride
+ - _HoverColorOpaqueOverride
+ - _InnerGlowColor
+ - _EnvironmentColorX
+ - _EnvironmentColorY
+ - _EnvironmentColorZ
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History: []
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.2
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CoffeeTheme.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CoffeeTheme.asset.meta
new file mode 100644
index 00000000000..668a7e4abc2
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CoffeeTheme.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: db76f3ab99da0ec48ba3c57db801718d
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CylinderTheme.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CylinderTheme.asset
new file mode 100644
index 00000000000..b9b227f8fb4
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CylinderTheme.asset
@@ -0,0 +1,390 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: CylinderTheme
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: -0.32, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0.75686276, b: 0.75686276, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.012415428, g: 0.8773585, b: 0.8773585, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.013349946, g: 0.3498023, b: 0.5660378, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EmissiveColor
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _RimColor
+ Type: 0
+ Range: {x: 0.5, y: 0.5}
+ - Name: _ClippingPlaneBorderColor
+ Type: 0
+ Range: {x: 0.2, y: 0}
+ - Name: _HoverColorOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _HoverColorOpaqueOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _InnerGlowColor
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EnvironmentColorX
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorY
+ Type: 0
+ Range: {x: 1, y: 0}
+ - Name: _EnvironmentColorZ
+ Type: 0
+ Range: {x: 0, y: 1}
+ ShaderOptionNames:
+ - _Color
+ - _EmissiveColor
+ - _RimColor
+ - _ClippingPlaneBorderColor
+ - _HoverColorOverride
+ - _HoverColorOpaqueOverride
+ - _InnerGlowColor
+ - _EnvironmentColorX
+ - _EnvironmentColorY
+ - _EnvironmentColorZ
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History: []
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.1
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CylinderTheme.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CylinderTheme.asset.meta
new file mode 100644
index 00000000000..8315d4e5f30
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/CylinderTheme.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 747264624b7f3934b8b507fdb1a20e51
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/DefaultTheme.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/DefaultTheme.asset
new file mode 100644
index 00000000000..965feb030b0
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/DefaultTheme.asset
@@ -0,0 +1,762 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: DefaultTheme
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1.06, y: 1.06, z: 1.06}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.01}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.1764706, g: 0.49019608, b: 0.6039216, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0.654902, b: 0.8039216, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.09019608, g: 0.4392157, b: 0.5647059, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _SpecColor
+ Type: 0
+ Range: {x: 0.5, y: 0.5}
+ - Name: _RimColor
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EmissionColor
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ - _SpecColor
+ - _RimColor
+ - _EmissionColor
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.88235295, g: 0.05190311, b: 0.05190311, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.048875432, g: 0.5072933, b: 0.8308824, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.17355102, g: 0.78676474, b: 0.4568981, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.84108996, g: 0.85294116, b: 0, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 2, y: 3, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Shader
+ Type: 3
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 10
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/DefaultTheme.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/DefaultTheme.asset.meta
new file mode 100644
index 00000000000..e8951cd0f55
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/DefaultTheme.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 34927bf1a1259e141a45f1dedff98d7f
+timeCreated: 1517598332
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlate.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlate.asset
new file mode 100644
index 00000000000..6d7c4f1f4f9
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlate.asset
@@ -0,0 +1,489 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: HolographicButtonBackPlate
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableColorTheme
+ Properties:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.16078432, g: 0.16078432, b: 0.16078432, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.16078432, g: 0.16078432, b: 0.16078432, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.5188679, g: 0.5188679, b: 0.5188679, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EmissiveColor
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _RimColor
+ Type: 0
+ Range: {x: 0.5, y: 0.5}
+ - Name: _ClippingPlaneBorderColor
+ Type: 0
+ Range: {x: 0.2, y: 0}
+ - Name: _HoverColorOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _HoverColorOpaqueOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _InnerGlowColor
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EnvironmentColorX
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorY
+ Type: 0
+ Range: {x: 1, y: 0}
+ - Name: _EnvironmentColorZ
+ Type: 0
+ Range: {x: 0, y: 1}
+ ShaderOptionNames:
+ - _Color
+ - _EmissiveColor
+ - _RimColor
+ - _ClippingPlaneBorderColor
+ - _HoverColorOverride
+ - _HoverColorOpaqueOverride
+ - _InnerGlowColor
+ - _EnvironmentColorX
+ - _EnvironmentColorY
+ - _EnvironmentColorZ
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.5188679, g: 0.5188679, b: 0.5188679, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.005}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.1
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlate.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlate.asset.meta
new file mode 100644
index 00000000000..1b15d7ccd7f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlate.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: d37afabc007bf774d9431b9a7cbe6fba
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlateToggleSelected.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlateToggleSelected.asset
new file mode 100644
index 00000000000..bf9cb91c66f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlateToggleSelected.asset
@@ -0,0 +1,489 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: HolographicButtonBackPlateToggleSelected
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableColorTheme
+ Properties:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0.54080504, b: 0.9811321, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0.5411765, b: 0.9843137, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0.6973052, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EmissiveColor
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _RimColor
+ Type: 0
+ Range: {x: 0.5, y: 0.5}
+ - Name: _ClippingPlaneBorderColor
+ Type: 0
+ Range: {x: 0.2, y: 0}
+ - Name: _HoverColorOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _HoverColorOpaqueOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _InnerGlowColor
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EnvironmentColorX
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorY
+ Type: 0
+ Range: {x: 1, y: 0}
+ - Name: _EnvironmentColorZ
+ Type: 0
+ Range: {x: 0, y: 1}
+ ShaderOptionNames:
+ - _Color
+ - _EmissiveColor
+ - _RimColor
+ - _ClippingPlaneBorderColor
+ - _HoverColorOverride
+ - _HoverColorOpaqueOverride
+ - _InnerGlowColor
+ - _EnvironmentColorX
+ - _EnvironmentColorY
+ - _EnvironmentColorZ
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.5188679, g: 0.5188679, b: 0.5188679, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.005}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.1
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlateToggleSelected.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlateToggleSelected.asset.meta
new file mode 100644
index 00000000000..663966852b6
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlateToggleSelected.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 29b20ecfcc16eef4dad8989c360f2988
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlate.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlate.asset
new file mode 100644
index 00000000000..8281c46b997
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlate.asset
@@ -0,0 +1,1129 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: HolographicButtonFrontPlate
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableShaderTheme
+ Properties:
+ - Name: Shader
+ Type: 3
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0.45
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0.45
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 30
+ ShaderOptions:
+ - Name: _AlbedoAlphaMode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Cutoff
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _Metallic
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _Smoothness
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _EnableChannelMap
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableNormalMap
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableEmission
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _DirectionalLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _SpecularHighlights
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Reflections
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Refraction
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RefractiveIndex
+ Type: 2
+ Range: {x: 0, y: 3}
+ - Name: _RimLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RimPower
+ Type: 2
+ Range: {x: 0, y: 8}
+ - Name: _ClippingPlane
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ClippingPlaneBorder
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ClippingPlaneBorderWidth
+ Type: 2
+ Range: {x: 0.005, y: 1}
+ - Name: _NearPlaneFade
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _FadeBeginDistance
+ Type: 2
+ Range: {x: 0.01, y: 10}
+ - Name: _FadeCompleteDistance
+ Type: 2
+ Range: {x: 0.01, y: 10}
+ - Name: _HoverLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableHoverColorOverride
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _HoverLightOpaque
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableHoverColorOpaqueOverride
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RoundCorners
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RoundCornerRadius
+ Type: 2
+ Range: {x: 0.01, y: 0.5}
+ - Name: _RoundCornerMargin
+ Type: 2
+ Range: {x: 0, y: 0.5}
+ - Name: _BorderLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BorderLightUsesHoverColor
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BorderLightOpaque
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BorderWidth
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _BorderMinValue
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _EdgeSmoothingValue
+ Type: 2
+ Range: {x: 0.0001, y: 0.2}
+ - Name: _InnerGlow
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColoring
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorThreshold
+ Type: 2
+ Range: {x: 0, y: 3}
+ - Name: _EnvironmentColorIntensity
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _Mode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _CustomMode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _SrcBlend
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _DstBlend
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BlendOp
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ZTest
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ZWrite
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ColorWriteMask
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _CullMode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RenderQueueOverride
+ Type: 2
+ Range: {x: -1, y: 5000}
+ - Name: _InstancedColor
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Stencil
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _StencilReference
+ Type: 2
+ Range: {x: 0, y: 255}
+ - Name: _StencilComparison
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _StencilOperation
+ Type: 1
+ Range: {x: 0, y: 0}
+ ShaderOptionNames:
+ - _AlbedoAlphaMode
+ - _Cutoff
+ - _Metallic
+ - _Smoothness
+ - _EnableChannelMap
+ - _EnableNormalMap
+ - _EnableEmission
+ - _DirectionalLight
+ - _SpecularHighlights
+ - _Reflections
+ - _Refraction
+ - _RefractiveIndex
+ - _RimLight
+ - _RimPower
+ - _ClippingPlane
+ - _ClippingPlaneBorder
+ - _ClippingPlaneBorderWidth
+ - _NearPlaneFade
+ - _FadeBeginDistance
+ - _FadeCompleteDistance
+ - _HoverLight
+ - _EnableHoverColorOverride
+ - _HoverLightOpaque
+ - _EnableHoverColorOpaqueOverride
+ - _RoundCorners
+ - _RoundCornerRadius
+ - _RoundCornerMargin
+ - _BorderLight
+ - _BorderLightUsesHoverColor
+ - _BorderLightOpaque
+ - _BorderWidth
+ - _BorderMinValue
+ - _EdgeSmoothingValue
+ - _InnerGlow
+ - _EnvironmentColoring
+ - _EnvironmentColorThreshold
+ - _EnvironmentColorIntensity
+ - _Mode
+ - _CustomMode
+ - _SrcBlend
+ - _DstBlend
+ - _BlendOp
+ - _ZTest
+ - _ZWrite
+ - _ColorWriteMask
+ - _CullMode
+ - _RenderQueueOverride
+ - _InstancedColor
+ - _Stencil
+ - _StencilReference
+ - _StencilComparison
+ - _StencilOperation
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.1
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ - Name: InteractableColorTheme
+ Properties:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.06666667, g: 0.06666667, b: 0.06666667, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.06666667, g: 0.06666667, b: 0.06666667, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EmissiveColor
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _RimColor
+ Type: 0
+ Range: {x: 0.5, y: 0.5}
+ - Name: _ClippingPlaneBorderColor
+ Type: 0
+ Range: {x: 0.2, y: 0}
+ - Name: _HoverColorOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _HoverColorOpaqueOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _InnerGlowColor
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EnvironmentColorX
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorY
+ Type: 0
+ Range: {x: 1, y: 0}
+ - Name: _EnvironmentColorZ
+ Type: 0
+ Range: {x: 0, y: 1}
+ ShaderOptionNames:
+ - _Color
+ - _EmissiveColor
+ - _RimColor
+ - _ClippingPlaneBorderColor
+ - _HoverColorOverride
+ - _HoverColorOpaqueOverride
+ - _InnerGlowColor
+ - _EnvironmentColorX
+ - _EnvironmentColorY
+ - _EnvironmentColorZ
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.1
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlate.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlate.asset.meta
new file mode 100644
index 00000000000..08ee6c9e37d
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlate.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: cbde7890146c3024d928b7afc2e16065
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel.asset
new file mode 100644
index 00000000000..2dbd0185a04
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel.asset
@@ -0,0 +1,458 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: HolographicButtonSeeItSayItLabel
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableScaleTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.06666667, g: 0.06666667, b: 0.06666667, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.06666667, g: 0.06666667, b: 0.06666667, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.9974621
+ value: -0.002669083
+ inSlope: -0.0024149457
+ outSlope: -0.0024149457
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.25344455
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 2
+ NoEasing: 0
+ IsValid: 0
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel.asset.meta
new file mode 100644
index 00000000000..af7e36191b3
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0c4c73f326f602744bdcfff481fd6f20
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_BuckyTheme.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_BuckyTheme.asset
new file mode 100644
index 00000000000..a47485f8019
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_BuckyTheme.asset
@@ -0,0 +1,647 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: Model_BuckyTheme
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1.1, y: 1.1, z: 1.1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0.9, y: 0.9, z: 0.9}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0.7529412, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 0.62734854, b: 0, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.06915272, g: 0.6981132, b: 0.45621789, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.2
+ NoEasing: 0
+ IsValid: 0
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_BuckyTheme.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_BuckyTheme.asset.meta
new file mode 100644
index 00000000000..e78f77dc21f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_BuckyTheme.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fac50a31c0d7baa438665cd4892903c0
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_IcosaTheme.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_IcosaTheme.asset
new file mode 100644
index 00000000000..a7b66e1364b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_IcosaTheme.asset
@@ -0,0 +1,1733 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: Model_IcosaTheme
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableShaderTheme
+ Properties:
+ - Name: Shader
+ Type: 3
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 1
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 1
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 27
+ ShaderOptions:
+ - Name: _AlbedoAlphaMode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Cutoff
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _Metallic
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _Smoothness
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _EnableChannelMap
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableNormalMap
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableEmission
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _DirectionalLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _SpecularHighlights
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Reflections
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Refraction
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RefractiveIndex
+ Type: 2
+ Range: {x: 0, y: 3}
+ - Name: _RimLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RimPower
+ Type: 2
+ Range: {x: 0, y: 8}
+ - Name: _ClippingPlane
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ClippingPlaneBorder
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ClippingPlaneBorderWidth
+ Type: 2
+ Range: {x: 0.005, y: 1}
+ - Name: _NearPlaneFade
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _FadeBeginDistance
+ Type: 2
+ Range: {x: 0.01, y: 10}
+ - Name: _FadeCompleteDistance
+ Type: 2
+ Range: {x: 0.01, y: 10}
+ - Name: _HoverLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableHoverColorOverride
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _HoverLightOpaque
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableHoverColorOpaqueOverride
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RoundCorners
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RoundCornerRadius
+ Type: 2
+ Range: {x: 0.01, y: 0.5}
+ - Name: _RoundCornerMargin
+ Type: 2
+ Range: {x: 0, y: 0.5}
+ - Name: _BorderLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BorderLightUsesHoverColor
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BorderLightOpaque
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BorderWidth
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _BorderMinValue
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _EdgeSmoothingValue
+ Type: 2
+ Range: {x: 0.0001, y: 0.2}
+ - Name: _InnerGlow
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColoring
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorThreshold
+ Type: 2
+ Range: {x: 0, y: 3}
+ - Name: _EnvironmentColorIntensity
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _Mode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _CustomMode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _SrcBlend
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _DstBlend
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BlendOp
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ZTest
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ZWrite
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ColorWriteMask
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _CullMode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RenderQueueOverride
+ Type: 2
+ Range: {x: -1, y: 5000}
+ - Name: _InstancedColor
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Stencil
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _StencilReference
+ Type: 2
+ Range: {x: 0, y: 255}
+ - Name: _StencilComparison
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _StencilOperation
+ Type: 1
+ Range: {x: 0, y: 0}
+ ShaderOptionNames:
+ - _AlbedoAlphaMode
+ - _Cutoff
+ - _Metallic
+ - _Smoothness
+ - _EnableChannelMap
+ - _EnableNormalMap
+ - _EnableEmission
+ - _DirectionalLight
+ - _SpecularHighlights
+ - _Reflections
+ - _Refraction
+ - _RefractiveIndex
+ - _RimLight
+ - _RimPower
+ - _ClippingPlane
+ - _ClippingPlaneBorder
+ - _ClippingPlaneBorderWidth
+ - _NearPlaneFade
+ - _FadeBeginDistance
+ - _FadeCompleteDistance
+ - _HoverLight
+ - _EnableHoverColorOverride
+ - _HoverLightOpaque
+ - _EnableHoverColorOpaqueOverride
+ - _RoundCorners
+ - _RoundCornerRadius
+ - _RoundCornerMargin
+ - _BorderLight
+ - _BorderLightUsesHoverColor
+ - _BorderLightOpaque
+ - _BorderWidth
+ - _BorderMinValue
+ - _EdgeSmoothingValue
+ - _InnerGlow
+ - _EnvironmentColoring
+ - _EnvironmentColorThreshold
+ - _EnvironmentColorIntensity
+ - _Mode
+ - _CustomMode
+ - _SrcBlend
+ - _DstBlend
+ - _BlendOp
+ - _ZTest
+ - _ZWrite
+ - _ColorWriteMask
+ - _CullMode
+ - _RenderQueueOverride
+ - _InstancedColor
+ - _Stencil
+ - _StencilReference
+ - _StencilComparison
+ - _StencilOperation
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Animator Trigger
+ Type: 16
+ Values:
+ - Name:
+ String: Default
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Focus
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Pressed
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Disabled
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Shader
+ Type: 3
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.2
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States:
+ - Name: Default
+ Index: 0
+ Bit: 1
+ Value: 0
+ ActiveIndex: 0
+ - Name: Focus
+ Index: 1
+ Bit: 2
+ Value: 0
+ ActiveIndex: 1
+ - Name: Pressed
+ Index: 2
+ Bit: 4
+ Value: 0
+ ActiveIndex: 2
+ - Name: Disabled
+ Index: 7
+ Bit: 8
+ Value: 0
+ ActiveIndex: 3
+ - Name: InteractableShaderTheme
+ Properties:
+ - Name: Shader
+ Type: 3
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0.1
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0.2
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 30
+ ShaderOptions:
+ - Name: _AlbedoAlphaMode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Cutoff
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _Metallic
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _Smoothness
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _EnableChannelMap
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableNormalMap
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableEmission
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _DirectionalLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _SpecularHighlights
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Reflections
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Refraction
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RefractiveIndex
+ Type: 2
+ Range: {x: 0, y: 3}
+ - Name: _RimLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RimPower
+ Type: 2
+ Range: {x: 0, y: 8}
+ - Name: _ClippingPlane
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ClippingPlaneBorder
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ClippingPlaneBorderWidth
+ Type: 2
+ Range: {x: 0.005, y: 1}
+ - Name: _NearPlaneFade
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _FadeBeginDistance
+ Type: 2
+ Range: {x: 0.01, y: 10}
+ - Name: _FadeCompleteDistance
+ Type: 2
+ Range: {x: 0.01, y: 10}
+ - Name: _HoverLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableHoverColorOverride
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _HoverLightOpaque
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnableHoverColorOpaqueOverride
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RoundCorners
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RoundCornerRadius
+ Type: 2
+ Range: {x: 0.01, y: 0.5}
+ - Name: _RoundCornerMargin
+ Type: 2
+ Range: {x: 0, y: 0.5}
+ - Name: _BorderLight
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BorderLightUsesHoverColor
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BorderLightOpaque
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BorderWidth
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _BorderMinValue
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _EdgeSmoothingValue
+ Type: 2
+ Range: {x: 0.0001, y: 0.2}
+ - Name: _InnerGlow
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColoring
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorThreshold
+ Type: 2
+ Range: {x: 0, y: 3}
+ - Name: _EnvironmentColorIntensity
+ Type: 2
+ Range: {x: 0, y: 1}
+ - Name: _Mode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _CustomMode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _SrcBlend
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _DstBlend
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _BlendOp
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ZTest
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ZWrite
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _ColorWriteMask
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _CullMode
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _RenderQueueOverride
+ Type: 2
+ Range: {x: -1, y: 5000}
+ - Name: _InstancedColor
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _Stencil
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _StencilReference
+ Type: 2
+ Range: {x: 0, y: 255}
+ - Name: _StencilComparison
+ Type: 1
+ Range: {x: 0, y: 0}
+ - Name: _StencilOperation
+ Type: 1
+ Range: {x: 0, y: 0}
+ ShaderOptionNames:
+ - _AlbedoAlphaMode
+ - _Cutoff
+ - _Metallic
+ - _Smoothness
+ - _EnableChannelMap
+ - _EnableNormalMap
+ - _EnableEmission
+ - _DirectionalLight
+ - _SpecularHighlights
+ - _Reflections
+ - _Refraction
+ - _RefractiveIndex
+ - _RimLight
+ - _RimPower
+ - _ClippingPlane
+ - _ClippingPlaneBorder
+ - _ClippingPlaneBorderWidth
+ - _NearPlaneFade
+ - _FadeBeginDistance
+ - _FadeCompleteDistance
+ - _HoverLight
+ - _EnableHoverColorOverride
+ - _HoverLightOpaque
+ - _EnableHoverColorOpaqueOverride
+ - _RoundCorners
+ - _RoundCornerRadius
+ - _RoundCornerMargin
+ - _BorderLight
+ - _BorderLightUsesHoverColor
+ - _BorderLightOpaque
+ - _BorderWidth
+ - _BorderMinValue
+ - _EdgeSmoothingValue
+ - _InnerGlow
+ - _EnvironmentColoring
+ - _EnvironmentColorThreshold
+ - _EnvironmentColorIntensity
+ - _Mode
+ - _CustomMode
+ - _SrcBlend
+ - _DstBlend
+ - _BlendOp
+ - _ZTest
+ - _ZWrite
+ - _ColorWriteMask
+ - _CullMode
+ - _RenderQueueOverride
+ - _InstancedColor
+ - _Stencil
+ - _StencilReference
+ - _StencilComparison
+ - _StencilOperation
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Animator Trigger
+ Type: 16
+ Values:
+ - Name:
+ String: Default
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Focus
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Pressed
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String: Disabled
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Shader
+ Type: 3
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.2
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States:
+ - Name: Default
+ Index: 0
+ Bit: 1
+ Value: 0
+ ActiveIndex: 0
+ - Name: Focus
+ Index: 1
+ Bit: 2
+ Value: 0
+ ActiveIndex: 1
+ - Name: Pressed
+ Index: 2
+ Bit: 4
+ Value: 0
+ ActiveIndex: 2
+ - Name: Disabled
+ Index: 7
+ Bit: 8
+ Value: 0
+ ActiveIndex: 3
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_IcosaTheme.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_IcosaTheme.asset.meta
new file mode 100644
index 00000000000..daebd32028e
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/Model_IcosaTheme.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e450e5bf251b5e641a3cc9e6d1022531
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackground.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackground.asset
new file mode 100644
index 00000000000..ddbe431fa97
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackground.asset
@@ -0,0 +1,489 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleBackground
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableColorTheme
+ Properties:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.7058824, g: 0.7058824, b: 0.7058824, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EmissiveColor
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _RimColor
+ Type: 0
+ Range: {x: 0.5, y: 0.5}
+ - Name: _ClippingPlaneBorderColor
+ Type: 0
+ Range: {x: 0.2, y: 0}
+ - Name: _HoverColorOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _HoverColorOpaqueOverride
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _InnerGlowColor
+ Type: 0
+ Range: {x: 1, y: 1}
+ - Name: _EnvironmentColorX
+ Type: 0
+ Range: {x: 0, y: 0}
+ - Name: _EnvironmentColorY
+ Type: 0
+ Range: {x: 1, y: 0}
+ - Name: _EnvironmentColorZ
+ Type: 0
+ Range: {x: 0, y: 1}
+ ShaderOptionNames:
+ - _Color
+ - _EmissiveColor
+ - _RimColor
+ - _ClippingPlaneBorderColor
+ - _HoverColorOverride
+ - _HoverColorOpaqueOverride
+ - _InnerGlowColor
+ - _EnvironmentColorX
+ - _EnvironmentColorY
+ - _EnvironmentColorZ
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: Mixed Reality Toolkit/Standard
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.28627452, g: 0.28627452, b: 0.28627452, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.28627452, g: 0.28627452, b: 0.28627452, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackground.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackground.asset.meta
new file mode 100644
index 00000000000..7f4431e535f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackground.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 5753d89c205814542ba3fef191dc4682
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackgroundSelected.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackgroundSelected.asset
new file mode 100644
index 00000000000..c53b5d38f98
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackgroundSelected.asset
@@ -0,0 +1,449 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleBackgroundSelected
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: InteractableColorTheme
+ Properties:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.1764706, g: 0.49019608, b: 0.6039216, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.754361, g: 0.93816495, b: 0.9811321, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.6, g: 0.9019608, b: 0.972549, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.1764706, g: 0.49019608, b: 0.6039216, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.754361, g: 0.93816495, b: 0.9811321, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.6, g: 0.9019608, b: 0.972549, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.007}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 0
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackgroundSelected.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackgroundSelected.asset.meta
new file mode 100644
index 00000000000..5878c33d29b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleBackgroundSelected.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 25fd4afc60b411a4899da8c48e287906
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButton.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButton.asset
new file mode 100644
index 00000000000..bbec67358cb
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButton.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleButton
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.002}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3018868, g: 0.3004628, b: 0.3004628, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.41509432, g: 0.41509432, b: 0.41509432, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButton.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButton.asset.meta
new file mode 100644
index 00000000000..d238560040c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButton.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 6c08928bdf950d54390c1346d23d422b
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButtonSelected.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButtonSelected.asset
new file mode 100644
index 00000000000..cac6a43f05d
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButtonSelected.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleButtonSelected
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.002}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.06666667, g: 0.54509807, b: 0.7372549, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.23921569, g: 0.74509805, b: 0.9528302, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.14901961, g: 0.4117647, b: 0.5176471, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButtonSelected.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButtonSelected.asset.meta
new file mode 100644
index 00000000000..51882440037
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleButtonSelected.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: cb5abaa7279811d409e5bac06ad02a1f
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDot.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDot.asset
new file mode 100644
index 00000000000..2740cf41fb4
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDot.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleDot
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.002}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDot.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDot.asset.meta
new file mode 100644
index 00000000000..4e7fd966b44
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDot.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 02c718b28bedf814ea16dd51767befc6
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDotSelected.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDotSelected.asset
new file mode 100644
index 00000000000..2630dfe2630
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDotSelected.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleDotSelected
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0.02, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0.02, y: 0, z: -0.005}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0.02, y: 0, z: 0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0.02, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDotSelected.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDotSelected.asset.meta
new file mode 100644
index 00000000000..470fa160f35
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleDotSelected.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 69ccbccdd82ebc34283000ef061eab28
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIcon.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIcon.asset
new file mode 100644
index 00000000000..08ce4fa4e44
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIcon.asset
@@ -0,0 +1,1281 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleIcon
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.002}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ - Name: InteractableActivateTheme
+ Properties:
+ - Name: Activate
+ Type: 15
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Activate
+ Type: 15
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Audio
+ Type: 11
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 0
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.5
+ NoEasing: 1
+ IsValid: 0
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIcon.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIcon.asset.meta
new file mode 100644
index 00000000000..66e747bc020
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIcon.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c5fe122d2d821434894bbf06f71057d3
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIconSelected.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIconSelected.asset
new file mode 100644
index 00000000000..60492453bf4
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIconSelected.asset
@@ -0,0 +1,1281 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleIconSelected
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.004}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.002}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ - Name: InteractableActivateTheme
+ Properties:
+ - Name: Activate
+ Type: 15
+ Values:
+ - Name: Default
+ String:
+ Bool: 1
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 1
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 1
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 1
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Activate
+ Type: 15
+ Values:
+ - Name:
+ String:
+ Bool: 1
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 1
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 1
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 1
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Audio
+ Type: 11
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 0
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.5
+ NoEasing: 1
+ IsValid: 0
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIconSelected.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIconSelected.asset.meta
new file mode 100644
index 00000000000..d7f7ada19ad
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleIconSelected.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: dae413b1fffbbf841ae1176deb55d3c0
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabel.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabel.asset
new file mode 100644
index 00000000000..aa96319453d
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabel.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleLabel
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.003}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.003}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9245283, g: 0.9245283, b: 0.9245283, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.6226415, g: 0.6226415, b: 0.6226415, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.509434, g: 0.509434, b: 0.509434, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabel.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabel.asset.meta
new file mode 100644
index 00000000000..3f35d032192
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabel.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 0eea8a8be0e42494083a2dc52fab717f
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabelSelected.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabelSelected.asset
new file mode 100644
index 00000000000..d4d83a3c54b
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabelSelected.asset
@@ -0,0 +1,651 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ToggleLabelSelected
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: -0.003}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0.003}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.73700607, g: 0.87070245, b: 0.9245283, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.9292453, g: 0.9793632, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Press
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.508366, g: 0.79805976, b: 0.9056604, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions:
+ - Name: _Color
+ Type: 0
+ Range: {x: 1, y: 1}
+ ShaderOptionNames:
+ - _Color
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName: MixedRealityToolkit/Examples/UnlitTriplanar
+ History:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 2
+ outSlope: 2
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 0
+ LerpTime: 0.3
+ NoEasing: 0
+ IsValid: 1
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabelSelected.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabelSelected.asset.meta
new file mode 100644
index 00000000000..1a12c5b79c6
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ToggleLabelSelected.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 077f50c510dd803449e2247b7fbe3122
+timeCreated: 1531192099
+licenseType: Pro
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ballonTheme.asset b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ballonTheme.asset
new file mode 100644
index 00000000000..c17b8b49143
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ballonTheme.asset
@@ -0,0 +1,350 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e7e7db9a2688ed540af9819c456ba2e2, type: 3}
+ m_Name: ballonTheme
+ m_EditorClassIdentifier:
+ Name:
+ Settings:
+ - Name: ScaleOffsetColorTheme
+ Properties:
+ - Name: Scale
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1.1, y: 1.1, z: 1.1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0.9, y: 0.9, z: 0.9}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 1, y: 1, z: 1}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Offset
+ Type: 6
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ - Name: Color
+ Type: 2
+ Values:
+ - Name: Default
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 0, b: 0.84705883, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Focus
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 0.76344615, b: 0.33490568, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Pressed
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0.45590416, g: 0, b: 0.7647059, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ - Name: Disabled
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 1, g: 1, b: 1, a: 1}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ StartValue:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ PropId: 0
+ ShaderOptions: []
+ ShaderOptionNames: []
+ Default:
+ Name:
+ String:
+ Bool: 0
+ Int: 0
+ Float: 0
+ Texture: {fileID: 0}
+ Material: {fileID: 0}
+ GameObject: {fileID: 0}
+ Vector2: {x: 0, y: 0}
+ Vector3: {x: 0, y: 0, z: 0}
+ Vector4: {x: 0, y: 0, z: 0, w: 0}
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Quaternion: {x: 0, y: 0, z: 0, w: 0}
+ AudioClip: {fileID: 0}
+ Animation: {fileID: 0}
+ ShaderName:
+ History: []
+ Easing:
+ Enabled: 1
+ Curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ LerpTime: 0.1
+ NoEasing: 0
+ IsValid: 0
+ ThemeTarget:
+ Properties: []
+ Target: {fileID: 0}
+ States: []
+ CustomSettings: []
+ States: {fileID: 11400000, guid: 5eac1712038236e4b8ffdb3893804fe1, type: 2}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ballonTheme.asset.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ballonTheme.asset.meta
new file mode 100644
index 00000000000..64efee36d5e
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Themes/ballonTheme.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ce58007a668e3214abb10622861eb3aa
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Meshes/HolographicButton.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Meshes/HolographicButton.meta
new file mode 100644
index 00000000000..d28e3f8507f
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Meshes/HolographicButton.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 116650b8c7e2768458a3ff6b1384d86d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Meshes/HolographicButton/CompoundButtonMeshes.fbx b/Assets/MixedRealityToolkit.SDK/Features/UX/Meshes/HolographicButton/CompoundButtonMeshes.fbx
new file mode 100644
index 00000000000..40eea87204b
Binary files /dev/null and b/Assets/MixedRealityToolkit.SDK/Features/UX/Meshes/HolographicButton/CompoundButtonMeshes.fbx differ
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Meshes/HolographicButton/CompoundButtonMeshes.fbx.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Meshes/HolographicButton/CompoundButtonMeshes.fbx.meta
new file mode 100644
index 00000000000..4e834090dcb
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Meshes/HolographicButton/CompoundButtonMeshes.fbx.meta
@@ -0,0 +1,147 @@
+fileFormatVersion: 2
+guid: b566bbce04d66f4428421e81a3af0299
+ModelImporter:
+ serializedVersion: 22
+ fileIDToRecycleName:
+ 100000: back
+ 100002: //RootNode
+ 100004: Directional Light
+ 100006: UIButtonCircle
+ 100008: UIButtonCircleFace
+ 100010: UIButtonCircleIcon
+ 100012: UIButtonRectangle
+ 100014: UIButtonRectangleFace
+ 100016: UIButtonRectangleIcon
+ 100018: UIButtonSquare
+ 100020: UIButtonSquareFace
+ 100022: UIButtonSquareIcon
+ 100024: UIHolobarManipulationBG
+ 400000: back
+ 400002: //RootNode
+ 400004: Directional Light
+ 400006: UIButtonCircle
+ 400008: UIButtonCircleFace
+ 400010: UIButtonCircleIcon
+ 400012: UIButtonRectangle
+ 400014: UIButtonRectangleFace
+ 400016: UIButtonRectangleIcon
+ 400018: UIButtonSquare
+ 400020: UIButtonSquareFace
+ 400022: UIButtonSquareIcon
+ 400024: UIHolobarManipulationBG
+ 2000000: back
+ 2100000: lambert1
+ 2300000: UIButtonCircle
+ 2300002: UIButtonCircleFace
+ 2300004: UIButtonCircleIcon
+ 2300006: UIButtonRectangle
+ 2300008: UIButtonRectangleFace
+ 2300010: UIButtonRectangleIcon
+ 2300012: UIButtonSquare
+ 2300014: UIButtonSquareFace
+ 2300016: UIButtonSquareIcon
+ 2300018: UIHolobarManipulationBG
+ 3300000: UIButtonCircle
+ 3300002: UIButtonCircleFace
+ 3300004: UIButtonCircleIcon
+ 3300006: UIButtonRectangle
+ 3300008: UIButtonRectangleFace
+ 3300010: UIButtonRectangleIcon
+ 3300012: UIButtonSquare
+ 3300014: UIButtonSquareFace
+ 3300016: UIButtonSquareIcon
+ 3300018: UIHolobarManipulationBG
+ 4300000: UIButtonRectangle
+ 4300002: UIButtonRectangleFace
+ 4300004: UIButtonRectangleIcon
+ 4300006: UIButtonSquare
+ 4300008: UIButtonSquareFace
+ 4300010: UIButtonSquareIcon
+ 4300012: UIButtonCircle
+ 4300014: UIButtonCircleFace
+ 4300016: UIButtonCircleIcon
+ 4300018: UIHolobarManipulationBG
+ 7400000: Take 001
+ 9500000: //RootNode
+ 10800000: Directional Light
+ externalObjects: {}
+ materials:
+ importMaterials: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 1
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ optimizeMeshForGPU: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ importAnimation: 1
+ copyAvatar: 0
+ humanDescription:
+ serializedVersion: 2
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ rootMotionBoneName:
+ rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ animationType: 2
+ humanoidOversampling: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Collections/TileGridObjectCollection.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Collections/TileGridObjectCollection.cs
new file mode 100644
index 00000000000..1ba1ff82c65
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Collections/TileGridObjectCollection.cs
@@ -0,0 +1,155 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Collections
+{
+ ///
+ /// A basic grid layout for game objects of a consistant size
+ ///
+ ///
+ [ExecuteInEditMode]
+ public class TileGridObjectCollection : MonoBehaviour
+ {
+ ///
+ /// structure elements of a grid layout
+ ///
+ public enum GridDivisions { Rows, Columns};
+
+ ///
+ /// How many columns should the grid have
+ ///
+ [Tooltip("How many rows max in each column")]
+ [SerializeField]
+ protected int Columns = 4;
+
+ ///
+ /// Tile size in pixels
+ ///
+ [Tooltip("The size of the tile or grid cell")]
+ [SerializeField]
+ protected Vector3 TileSize = new Vector3(0.1f, 0.1f, 0);
+
+ ///
+ /// The space between tiles in pixels
+ ///
+ [Tooltip("Additional space between tiles")]
+ [SerializeField]
+ protected Vector3 Gutters = new Vector3(0.005f, 0.005f, 0.005f);
+
+ ///
+ /// The layout direction as a normalized vector
+ ///
+ [Tooltip("The direction the layout should be distributed - normalized vector")]
+ [SerializeField]
+ protected Vector3 LayoutDireciton = new Vector3(1, -1, 0);
+
+ ///
+ /// The starting position of the grid - an offset value
+ ///
+ [Tooltip("The starting position offset")]
+ [SerializeField]
+ protected Vector3 StartPosition = Vector3.zero;
+
+ ///
+ /// Will the grid be centered or start in the top corner
+ ///
+ [Tooltip("Should the layout center itself on the startPosition?")]
+ [SerializeField]
+ protected bool Centered = false;
+
+ ///
+ /// The depth or z uses the rows if true or columns if false
+ ///
+ [Tooltip("Depth values (z) is applied using rows or columns position")]
+ [SerializeField]
+ protected GridDivisions DepthCalculatedBy = GridDivisions.Rows;
+
+ ///
+ /// Should this update during run-time
+ ///
+ [Tooltip("Should the update run in Edit Mode only or should this be responsive during run-time?")]
+ [SerializeField]
+ protected bool OnlyInEditMode = false;
+
+ protected Vector3 offSet;
+ protected bool editorUpdated = false;
+
+ ///
+ /// Load the settings of the grid with code
+ ///
+ /// the amount of columns
+ /// grid tile size in pixels
+ /// gutter size in pixels
+ /// normalized vector flow direction
+ /// start position offset
+ /// center the grid or layotu from edge
+ public virtual void ConfigureGrid(int columns, Vector3 tileSize, Vector3 gutters, Vector3 layouDirection, Vector3 startPosition, bool centered)
+ {
+ Columns = columns;
+ TileSize = tileSize;
+ Gutters = gutters;
+ LayoutDireciton = layouDirection;
+ StartPosition = startPosition;
+ Centered = centered;
+ }
+
+ protected virtual void OnValidate()
+ {
+ editorUpdated = true;
+ }
+
+ protected virtual void Start()
+ {
+ editorUpdated = true;
+ }
+
+ ///
+ /// Set the item position by index
+ ///
+ ///
+ ///
+ public virtual Vector3 GetListPosition(int index)
+ {
+ int column = index % Columns;
+ int row = Columns > 0 ? Mathf.FloorToInt(index / Columns) : index;
+
+ Vector3 size = Vector3.Scale(TileSize + Gutters, LayoutDireciton);
+
+ float xPos = size.x * column;
+ float yPos = size.y * row;
+ float zPos = DepthCalculatedBy == GridDivisions.Rows ? size.z * row : size.z * column;
+
+ return new Vector3(xPos, yPos, zPos);
+ }
+
+ protected virtual void Update()
+ {
+ // restrict update unless we need this to be responsive
+ if ((Application.isPlaying || !OnlyInEditMode) || editorUpdated)
+ {
+ int childCount = transform.childCount;
+
+ if (Centered)
+ {
+ offSet = GetListPosition(Mathf.CeilToInt(childCount / Columns) * Columns - 1) * -0.5f + Vector3.Scale(TileSize, LayoutDireciton) * -0.5f;
+ }
+ else
+ {
+ offSet = Vector3.zero;
+ }
+
+ for (int i = 0; i < childCount; i++)
+ {
+ Transform item = transform.GetChild(i);
+ item.localPosition = StartPosition + offSet + (Vector3.Scale(TileSize, LayoutDireciton) * 0.5f) + GetListPosition(i);
+ }
+
+ editorUpdated = false;
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Collections/TileGridObjectCollection.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Collections/TileGridObjectCollection.cs.meta
new file mode 100644
index 00000000000..6475352c7e1
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Collections/TileGridObjectCollection.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 56472238f6c684345b76dd7b7323f33d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Utilities/Easing.cs b/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Utilities/Easing.cs
new file mode 100644
index 00000000000..41c18fd26b1
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Utilities/Easing.cs
@@ -0,0 +1,138 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX
+{
+ ///
+ /// Ease settings and functionality for animation with curves
+ ///
+
+ [System.Serializable]
+ public class Easing
+ {
+ ///
+ /// basic ease curves for quick settings
+ ///
+ public enum BasicEaseCurves { Linear, EaseIn, EaseOut, EaseInOut }
+
+ ///
+ /// Is the ease enabled?
+ ///
+ public bool Enabled = false;
+
+ ///
+ /// The animation curve to use for the ease - default should be linear
+ ///
+ public AnimationCurve Curve = AnimationCurve.Linear(0, 1, 1, 1);
+
+ ///
+ /// The amounnt of time the ease should run
+ ///
+ public float LerpTime = 0.5f;
+
+ private float timer = 0.5f;
+
+ public Easing()
+ {
+ Stop();
+ }
+
+ ///
+ /// Update the ease each frame or on Update
+ ///
+ public void OnUpdate()
+ {
+ if (timer < LerpTime)
+ {
+ timer = Mathf.Min(timer + Time.deltaTime, LerpTime);
+ }
+ }
+
+ ///
+ /// start the ease if enabled
+ ///
+ public void Start()
+ {
+ timer = 0;
+ if (!Enabled)
+ {
+ timer = LerpTime;
+ }
+ }
+
+ ///
+ /// Is the ease currently running?
+ ///
+ ///
+ public bool IsPlaying()
+ {
+ return timer < LerpTime;
+ }
+
+ ///
+ /// stop the ease
+ ///
+ public void Stop()
+ {
+ timer = LerpTime;
+ }
+
+ ///
+ /// get the linear ease value
+ ///
+ ///
+ public float GetLinear()
+ {
+ return timer / LerpTime;
+ }
+
+ ///
+ /// get the ease value based on the animation curve
+ ///
+ ///
+ public float GetCurved()
+ {
+ return IsLinear() ? GetLinear() : Curve.Evaluate(GetLinear());
+ }
+
+ protected bool IsLinear()
+ {
+ if (Curve.keys.Length > 1)
+ {
+ return (Curve.keys[0].value == 1 && Curve.keys[1].value == 1);
+ }
+
+ return false;
+ }
+
+ ///
+ /// set the animation curve using a preset
+ ///
+ ///
+ public void SetCurve(BasicEaseCurves curve)
+ {
+ AnimationCurve animation = AnimationCurve.Linear(0, 1, 1, 1);
+ switch (curve)
+ {
+ case BasicEaseCurves.EaseIn:
+ animation = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1, 2.5f, 0));
+ break;
+ case BasicEaseCurves.EaseOut:
+ animation = new AnimationCurve(new Keyframe(0, 0, 0, 2.5f), new Keyframe(1, 1));
+ break;
+ case BasicEaseCurves.EaseInOut:
+ animation = AnimationCurve.EaseInOut(0, 0, 1, 1);
+ break;
+ default:
+ break;
+ }
+
+ Curve = animation;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Utilities/Easing.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Utilities/Easing.cs.meta
new file mode 100644
index 00000000000..a6c7ae1f9e8
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Utilities/Easing.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 873e7cfd19dfd8342ae4b7cebfffaa7d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Features/Utilities/HeadPositionOffset.cs b/Assets/MixedRealityToolkit.SDK/Features/Utilities/HeadPositionOffset.cs
new file mode 100644
index 00000000000..fe9270ff195
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/Utilities/HeadPositionOffset.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.
+
+using Microsoft.MixedReality.Toolkit.Core.Services;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.Utilities
+{
+ ///
+ /// Set the content around the camera height
+ ///
+ public class HeadPositionOffset : MonoBehaviour
+ {
+ public Vector3 HeadOffset = new Vector3(0, 0, 1f);
+
+ private bool started = false;
+
+ private void Start()
+ {
+ transform.position = Camera.main.transform.position + HeadOffset;
+ started = true;
+ }
+
+ private void OnEnable()
+ {
+ if (started)
+ {
+ transform.position = Camera.main.transform.position + HeadOffset;
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Features/Utilities/HeadPositionOffset.cs.meta b/Assets/MixedRealityToolkit.SDK/Features/Utilities/HeadPositionOffset.cs.meta
new file mode 100644
index 00000000000..140978732c4
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Features/Utilities/HeadPositionOffset.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: afed44e9381983c42827b48d56b1af17
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable.meta b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable.meta
new file mode 100644
index 00000000000..5c81a1bd97c
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 0476b980a78e33a4aa3808885024844f
+folderAsset: yes
+timeCreated: 1520530639
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ButtonBackgroundSizeGizmo.cs b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ButtonBackgroundSizeGizmo.cs
new file mode 100644
index 00000000000..0f5b61b88df
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ButtonBackgroundSizeGizmo.cs
@@ -0,0 +1,31 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Layout
+{
+ [CustomEditor(typeof(ButtonBackgroundSize))]
+ public class ButtonBackgroundSizeGizmo : Editor
+ {
+ public void OnSceneGUI()
+ {
+ ButtonBackgroundSize pixelSize = (ButtonBackgroundSize)target;
+
+ float size = HandleUtility.GetHandleSize(pixelSize.transform.position) * 1f;
+
+ EditorGUI.BeginChangeCheck();
+ Vector3 itemSize = Handles.ScaleHandle(pixelSize.GetSize(), pixelSize.transform.position, pixelSize.transform.rotation, size);
+
+ if (EditorGUI.EndChangeCheck())
+ {
+ Undo.RecordObject(target, "Change ItemSize Value");
+ pixelSize.SetSize(itemSize);
+
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ButtonBackgroundSizeGizmo.cs.meta b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ButtonBackgroundSizeGizmo.cs.meta
new file mode 100644
index 00000000000..3ca3c272419
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ButtonBackgroundSizeGizmo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c143e1d1fa7235d429e5be87690e87a9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableInspector.cs b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableInspector.cs
new file mode 100644
index 00000000000..05ae50bc51a
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableInspector.cs
@@ -0,0 +1,699 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Definitions.InputSystem;
+using Microsoft.MixedReality.Toolkit.Core.Inspectors.Utilities;
+using Microsoft.MixedReality.Toolkit.SDK.Input.Handlers;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Profile;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using UnityEditor;
+using UnityEditor.Animations;
+using UnityEngine;
+using UnityEngine.Events;
+using UnityEngine.UI;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable
+{
+#if UNITY_EDITOR
+ [CustomEditor(typeof(Interactable))]
+ public class InteractableInspector : Editor
+ {
+ protected Interactable instance;
+ protected List eventList;
+ protected SerializedProperty profileList;
+ protected static bool showProfiles;
+ protected string prefKey = "InteractableInspectorProfiles";
+ protected bool enabled = false;
+
+ protected string[] eventOptions;
+ protected Type[] eventTypes;
+ protected string[] themeOptions;
+ protected Type[] themeTypes;
+ protected string[] shaderOptions;
+
+ protected string[] actionOptions;
+
+ protected static bool ProfilesSetup = false;
+
+ // indent tracker
+ protected static int indentOnSectionStart = 0;
+
+ protected List listSettings;
+
+ protected GUIStyle boxStyle;
+
+ private SerializedProperty tempSettings;
+
+
+ protected virtual void OnEnable()
+ {
+ instance = (Interactable)target;
+ eventList = instance.Events;
+
+ profileList = serializedObject.FindProperty("Profiles");
+ listSettings = InspectorUIUtility.AdjustListSettings(null, profileList.arraySize);
+ showProfiles = EditorPrefs.GetBool(prefKey, showProfiles);
+
+ SetupEventOptions();
+ SetupThemeOptions();
+
+ actionOptions = Interactable.GetInputActions();
+
+ enabled = true;
+ }
+
+ protected virtual void RenderBaseInspector()
+ {
+ base.OnInspectorGUI();
+ }
+
+ public override void OnInspectorGUI()
+ {
+ //RenderBaseInspector()
+ RenderCustomInspector();
+ }
+
+ public virtual void RenderCustomInspector()
+ {
+ // TODO: extend the preference array to handle multiple themes open and scroll values!!!
+ // TODO: add messaging!!!
+ // TODO: handle dimensions
+ // TODO: add profiles
+ // TODO: add themes
+ // TODO: handle/display properties from themes
+
+ // TODO: !!!!! need to make sure we refresh the shader list when the target changes
+
+ // TODO: !!!!! finish incorporating States
+ // TODO: add the default states by default
+ // TODO: let flow into rest of themes and events.
+ // TODO: events should target the state logic they support.
+
+ // FIX: when deleting a theme property, the value resets or the item that's deleted is wrong
+
+ //base.DrawDefaultInspector();
+
+ serializedObject.Update();
+
+ EditorGUILayout.Space();
+ InspectorUIUtility.DrawTitle("Interactable");
+ //EditorGUILayout.LabelField(new GUIContent("Interactable Settings"));
+
+ EditorGUILayout.BeginVertical("Box");
+
+ // States
+ bool showStates = false;
+ SerializedProperty states = serializedObject.FindProperty("States");
+ bool drawerStarted = false;
+ if (states.objectReferenceValue != null)
+ {
+ string statesPrefKey = "Settings_States";
+ bool prefsShowStates = EditorPrefs.GetBool(statesPrefKey);
+ EditorGUI.indentLevel = indentOnSectionStart + 1;
+ showStates = InspectorUIUtility.DrawSectionStart(states.objectReferenceValue.name + " (Click to edit)", indentOnSectionStart + 2, prefsShowStates, FontStyle.Normal, false);
+ drawerStarted = true;
+ if (showStates != prefsShowStates)
+ {
+ EditorPrefs.SetBool(statesPrefKey, showStates);
+ }
+ }
+ else
+ {
+ AssetDatabase.Refresh();
+ string[] stateLocations = AssetDatabase.FindAssets("DefaultInteractableStates");
+ if (stateLocations.Length > 0)
+ {
+ for (int i = 0; i < stateLocations.Length; i++)
+ {
+ string path = AssetDatabase.GUIDToAssetPath(stateLocations[i]);
+ States.States defaultStates = (States.States)AssetDatabase.LoadAssetAtPath(path, typeof(States.States));
+ if(defaultStates != null)
+ {
+ states.objectReferenceValue = defaultStates;
+ break;
+ }
+ }
+ }
+ else
+ {
+ showStates = true;
+ }
+ }
+
+ if (showStates)
+ {
+ EditorGUILayout.PropertyField(states, new GUIContent("States", "The States this Interactable is based on"));
+ }
+
+ if (drawerStarted)
+ {
+ InspectorUIUtility.DrawSectionEnd(indentOnSectionStart);
+ }
+
+ if (states.objectReferenceValue == null)
+ {
+ InspectorUIUtility.DrawError("Please assign a States object!");
+ serializedObject.ApplyModifiedProperties();
+ return;
+ }
+
+ //standard Interactable Object UI
+ SerializedProperty enabled = serializedObject.FindProperty("Enabled");
+ enabled.boolValue = EditorGUILayout.Toggle(new GUIContent("Enabled", "Is this Interactable Enabled?"), enabled.boolValue);
+
+ SerializedProperty actionId = serializedObject.FindProperty("InputActionId");
+
+ int newActionId = EditorGUILayout.Popup("Input Actions", actionId.intValue, actionOptions);
+ if (newActionId != actionId.intValue)
+ {
+ actionId.intValue = newActionId;
+ }
+
+ //selected.enumValueIndex = (int)(MixedRealityInputAction)EditorGUILayout.EnumPopup(new GUIContent("Input Action", "Input source for this Interactable, Default: Select"), (MixedRealityInputAction)selected.enumValueIndex);
+
+ // TODO: should IsGlobal only show up on specific press types and indent?
+ // TODO: should we show handedness on certain press types?
+ SerializedProperty isGlobal = serializedObject.FindProperty("IsGlobal");
+ isGlobal.boolValue = EditorGUILayout.Toggle(new GUIContent("Is Global", "Like a modal, does not require focus"), isGlobal.boolValue);
+
+ SerializedProperty voiceCommands = serializedObject.FindProperty("VoiceCommand");
+ voiceCommands.stringValue = EditorGUILayout.TextField(new GUIContent("Voice Command", "A voice command to trigger the click event"), voiceCommands.stringValue);
+
+ // show requires gaze because voice command has a value
+ if (!string.IsNullOrEmpty(voiceCommands.stringValue))
+ {
+ EditorGUI.indentLevel = indentOnSectionStart + 1;
+
+ SerializedProperty requireGaze = serializedObject.FindProperty("RequiresFocus");
+ requireGaze.boolValue = EditorGUILayout.Toggle(new GUIContent("Requires Focus", "Does the voice command require gazing at this interactable?"), requireGaze.boolValue);
+
+ EditorGUI.indentLevel = indentOnSectionStart;
+ }
+
+ SerializedProperty dimensions = serializedObject.FindProperty("Dimensions");
+ dimensions.intValue = EditorGUILayout.IntField(new GUIContent("Dimensions", "Toggle or squence button levels"), dimensions.intValue);
+
+ if (dimensions.intValue > 1)
+ {
+ EditorGUI.indentLevel = indentOnSectionStart + 1;
+
+ SerializedProperty canSelect = serializedObject.FindProperty("CanSelect");
+ SerializedProperty canDeselect = serializedObject.FindProperty("CanDeselect");
+
+ canSelect.boolValue = EditorGUILayout.Toggle(new GUIContent("Can Select", "The user can toggle this button"), canSelect.boolValue);
+ canDeselect.boolValue = EditorGUILayout.Toggle(new GUIContent("Can Deselect", "The user can untoggle this button, set false for a radial interaction."), canDeselect.boolValue);
+
+ EditorGUI.indentLevel = indentOnSectionStart;
+ }
+
+ EditorGUILayout.EndVertical();
+ EditorGUILayout.Space();
+ InspectorUIUtility.DrawDivider();
+
+ if (!ProfilesSetup && !showProfiles)
+ {
+ InspectorUIUtility.DrawWarning("Profiles (Optional) have not been set up or has errors.");
+ }
+
+ // profiles section
+ string profileTitle = "Profiles";
+ bool isOPen = InspectorUIUtility.DrawSectionStart(profileTitle, indentOnSectionStart + 1, showProfiles, InspectorUIUtility.LableStyle(InspectorUIUtility.TitleFontSize, InspectorUIUtility.ColorTint50).fontStyle, false, InspectorUIUtility.TitleFontSize);
+
+ if (showProfiles != isOPen)
+ {
+ showProfiles = isOPen;
+ EditorPrefs.SetBool(prefKey, showProfiles);
+ }
+
+ if (profileList.arraySize < 1)
+ {
+ AddProfile(0);
+ }
+
+ int validProfileCnt = 0;
+ int themeCnt = 0;
+
+ if (showProfiles)
+ {
+ for (int i = 0; i < profileList.arraySize; i++)
+ {
+ EditorGUILayout.BeginVertical("Box");
+ // get profiles
+ SerializedProperty sItem = profileList.GetArrayElementAtIndex(i);
+ EditorGUI.indentLevel = indentOnSectionStart;
+
+ SerializedProperty gameObject = sItem.FindPropertyRelative("Target");
+ string targetName = "Profile " + (i + 1);
+ if (gameObject.objectReferenceValue != null)
+ {
+ targetName = gameObject.objectReferenceValue.name;
+ validProfileCnt++;
+ }
+
+ EditorGUILayout.BeginHorizontal();
+ InspectorUIUtility.DrawLabel(targetName, 12, InspectorUIUtility.ColorTint100);
+
+ bool triggered = InspectorUIUtility.SmallButton(new GUIContent(InspectorUIUtility.Minus, "Remove Profile"), i, RemoveProfile);
+
+ if (triggered)
+ {
+ continue;
+ }
+
+ EditorGUILayout.EndHorizontal();
+
+ EditorGUI.indentLevel = indentOnSectionStart + 1;
+ EditorGUILayout.PropertyField(gameObject, new GUIContent("Target", "Target gameObject for this theme properties to manipulate"));
+
+ // get themes
+ SerializedProperty themes = sItem.FindPropertyRelative("Themes");
+
+ // make sure there are enough themes as dimensions
+ if (themes.arraySize > dimensions.intValue)
+ {
+ // make sure there are not more themes than dimensions
+ int cnt = themes.arraySize - 1;
+ for (int j = cnt; j > dimensions.intValue - 1; j--)
+ {
+ themes.DeleteArrayElementAtIndex(j);
+ }
+ }
+
+ // add themes when increading dimensions
+ if (themes.arraySize < dimensions.intValue)
+ {
+ int cnt = themes.arraySize;
+ for (int j = cnt; j < dimensions.intValue; j++)
+ {
+ themes.InsertArrayElementAtIndex(themes.arraySize);
+ SerializedProperty theme = themes.GetArrayElementAtIndex(themes.arraySize - 1);
+
+ // TODO: make sure there is only one or make unique
+ string[] themeLocations = AssetDatabase.FindAssets("DefaultTheme");
+ if (themeLocations.Length > 0)
+ {
+ for (int k = 0; k < themeLocations.Length; k++)
+ {
+ string path = AssetDatabase.GUIDToAssetPath(themeLocations[k]);
+ Theme defaultTheme = (Theme)AssetDatabase.LoadAssetAtPath(path, typeof(Theme));
+ if(defaultTheme != null)
+ {
+ theme.objectReferenceValue = defaultTheme;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ for (int t = 0; t < themes.arraySize; t++)
+ {
+ SerializedProperty themeItem = themes.GetArrayElementAtIndex(t);
+ EditorGUILayout.PropertyField(themeItem, new GUIContent("Theme", "Theme properties for interation feedback"));
+
+ // TODO: we need the theme and target in order to figure out what properties to expose in the list
+ // TODO: or do we show them all and show alerts when a theme property is not compatable
+ if (themeItem.objectReferenceValue != null && gameObject.objectReferenceValue)
+ {
+ if (themeItem.objectReferenceValue.name == "DefaultTheme")
+ {
+ EditorGUILayout.BeginHorizontal();
+ InspectorUIUtility.DrawWarning("DefaultTheme should not be edited. ");
+ bool newTheme = InspectorUIUtility.FlexButton(new GUIContent("Create Theme", "Create a new theme"), new int[] { i, t, 0}, CreateTheme);
+ if (newTheme)
+ {
+ continue;
+ }
+ EditorGUILayout.EndHorizontal();
+ }
+
+ SerializedProperty hadDefault = sItem.FindPropertyRelative("HadDefaultTheme");
+ hadDefault.boolValue = true;
+ EditorGUI.indentLevel = indentOnSectionStart + 2;
+
+ string prefKey = themeItem.objectReferenceValue.name + "Profiles" + i + "_Theme" + t + "_Edit";
+ bool showSettings = EditorPrefs.GetBool(prefKey);
+
+ InspectorUIUtility.ListSettings settings = listSettings[i];
+ bool show = InspectorUIUtility.DrawSectionStart(themeItem.objectReferenceValue.name + " (Click to edit)", indentOnSectionStart + 3, showSettings, FontStyle.Normal, false);
+
+ if (show != showSettings)
+ {
+ EditorPrefs.SetBool(prefKey, show);
+ settings.Show = show;
+ }
+
+ if (show)
+ {
+ SerializedObject themeObj = new SerializedObject(themeItem.objectReferenceValue);
+ SerializedProperty themeObjSettings = themeObj.FindProperty("Settings");
+ themeObj.Update();
+
+ GUILayout.Space(5);
+
+ if (themeObjSettings.arraySize < 1)
+ {
+ AddThemeProperty(new int[] { i, t, 0 });
+ }
+
+ int[] location = new int[] { i, t, 0 };
+
+ States.State[] iStates = GetStates();
+
+ ThemeInspector.RenderThemeSettings(themeObjSettings, themeObj, themeOptions, gameObject, location, iStates);
+
+ InspectorUIUtility.FlexButton(new GUIContent("+", "Add Theme Property"), location, AddThemeProperty);
+
+ ThemeInspector.RenderThemeStates(themeObjSettings, iStates, 30);
+
+ themeObj.ApplyModifiedProperties();
+ }
+
+ InspectorUIUtility.DrawSectionEnd(indentOnSectionStart + 2);
+ listSettings[i] = settings;
+
+ validProfileCnt++;
+ }
+ else
+ {
+ // show message about profile setup
+ string themeMsg = "Assign a ";
+ if (gameObject.objectReferenceValue == null)
+ {
+ themeMsg += "Target ";
+ }
+
+ if (themeItem.objectReferenceValue == null)
+ {
+ if (gameObject.objectReferenceValue == null)
+ {
+ themeMsg += "and ";
+ }
+ themeMsg += "Theme ";
+ }
+
+ themeMsg += "above to add visual effects";
+
+ SerializedProperty hadDefault = sItem.FindPropertyRelative("HadDefaultTheme");
+
+ if (!hadDefault.boolValue && t == 0)
+ {
+ string[] themeLocations = AssetDatabase.FindAssets("DefaultTheme");
+
+ if (themeLocations.Length > 0)
+ {
+ for (int j = 0; j < themeLocations.Length; j++)
+ {
+ string path = AssetDatabase.GUIDToAssetPath(themeLocations[0]);
+ Theme defaultTheme = (Theme)AssetDatabase.LoadAssetAtPath(path, typeof(Theme));
+ if(defaultTheme != null)
+ {
+ themeItem.objectReferenceValue = defaultTheme;
+ break;
+ }
+ }
+
+ if (themeItem.objectReferenceValue != null)
+ {
+ hadDefault.boolValue = true;
+ }
+ }
+ else
+ {
+ InspectorUIUtility.DrawError("DefaultTheme missing from project!");
+ }
+ }
+
+ InspectorUIUtility.DrawError(themeMsg);
+ }
+ }
+
+ EditorGUI.indentLevel = indentOnSectionStart;
+
+ EditorGUILayout.EndVertical();
+
+ themeCnt += themes.arraySize;
+
+ }
+
+ if (GUILayout.Button(new GUIContent("Add Profile")))
+ {
+ AddProfile(profileList.arraySize);
+ }
+ }
+ else
+ {
+ // make sure profiles are setup if closed by default
+ for (int i = 0; i < profileList.arraySize; i++)
+ {
+ SerializedProperty sItem = profileList.GetArrayElementAtIndex(i);
+ SerializedProperty gameObject = sItem.FindPropertyRelative("Target");
+ SerializedProperty themes = sItem.FindPropertyRelative("Themes");
+
+ if (gameObject.objectReferenceValue != null)
+ {
+ validProfileCnt++;
+ }
+
+ for (int t = 0; t < themes.arraySize; t++)
+ {
+ SerializedProperty themeItem = themes.GetArrayElementAtIndex(themes.arraySize - 1);
+ if (themeItem.objectReferenceValue != null && gameObject.objectReferenceValue)
+ {
+ validProfileCnt++;
+ SerializedProperty hadDefault = sItem.FindPropertyRelative("HadDefaultTheme");
+ hadDefault.boolValue = true;
+ }
+ }
+
+ themeCnt += themes.arraySize;
+ }
+ }
+
+ ProfilesSetup = validProfileCnt == profileList.arraySize + themeCnt;
+
+ InspectorUIUtility.DrawSectionEnd(indentOnSectionStart);
+ EditorGUILayout.Space();
+ InspectorUIUtility.DrawDivider();
+
+ // Events section
+ InspectorUIUtility.DrawTitle("Events");
+ //EditorGUILayout.LabelField(new GUIContent("Events"));
+
+ SerializedProperty onClick = serializedObject.FindProperty("OnClick");
+ EditorGUILayout.PropertyField(onClick, new GUIContent("OnClick"));
+
+ SerializedProperty events = serializedObject.FindProperty("Events");
+
+ for (int i = 0; i < events.arraySize; i++)
+ {
+ SerializedProperty eventItem = events.GetArrayElementAtIndex(i);
+ InteractableReceiverListInspector.RenderEventSettings(eventItem, i, eventOptions, ChangeEvent, RemoveEvent);
+ }
+
+ if (eventOptions.Length > 1)
+ {
+ if (GUILayout.Button(new GUIContent("Add Event")))
+ {
+ AddEvent(events.arraySize);
+ }
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ protected virtual States.State[] GetStates()
+ {
+ return instance.GetStates();
+ }
+
+ protected string[] GetEventList()
+ {
+ return new string[] { };
+ }
+
+ /*
+ * PROFILES
+ */
+ protected void AddProfile(int index)
+ {
+ profileList.InsertArrayElementAtIndex(profileList.arraySize);
+ SerializedProperty newItem = profileList.GetArrayElementAtIndex(profileList.arraySize - 1);
+
+ SerializedProperty newTarget = newItem.FindPropertyRelative("Target");
+ SerializedProperty themes = newItem.FindPropertyRelative("Themes");
+ newTarget.objectReferenceValue = null;
+
+ themes.ClearArray();
+
+ listSettings.Add(new InspectorUIUtility.ListSettings() { Show = false, Scroll = new Vector2() });
+ }
+
+ protected void RemoveProfile(int index, SerializedProperty prop = null)
+ {
+ profileList.DeleteArrayElementAtIndex(index);
+ }
+
+ /*
+ * THEMES
+ */
+
+ protected void SetupThemeOptions()
+ {
+ InteractableProfileItem.ThemeLists lists = InteractableProfileItem.GetThemeTypes();
+ themeOptions = lists.Names.ToArray();
+ themeTypes = lists.Types.ToArray();
+ }
+
+ protected virtual void AddThemeProperty(int[] arr, SerializedProperty prop = null)
+ {
+ int profile = arr[0];
+ int theme = arr[1];
+
+ SerializedProperty sItem = profileList.GetArrayElementAtIndex(profile);
+ SerializedProperty themes = sItem.FindPropertyRelative("Themes");
+ SerializedProperty serializedTarget = sItem.FindPropertyRelative("Target");
+
+ SerializedProperty themeItem = themes.GetArrayElementAtIndex(theme);
+ SerializedObject themeObj = new SerializedObject(themeItem.objectReferenceValue);
+ themeObj.Update();
+
+ SerializedProperty themeObjSettings = themeObj.FindProperty("Settings");
+ themeObjSettings.InsertArrayElementAtIndex(themeObjSettings.arraySize);
+
+ SerializedProperty settingsItem = themeObjSettings.GetArrayElementAtIndex(themeObjSettings.arraySize-1);
+ SerializedProperty className = settingsItem.FindPropertyRelative("Name");
+ if (themeObjSettings.arraySize == 1) {
+
+ className.stringValue = "ScaleOffsetColorTheme";
+ }
+ else
+ {
+ className.stringValue = themeOptions[0];
+ }
+
+ SerializedProperty easing = settingsItem.FindPropertyRelative("Easing");
+
+ SerializedProperty time = easing.FindPropertyRelative("LerpTime");
+ SerializedProperty curve = easing.FindPropertyRelative("Curve");
+ time.floatValue = 0.5f;
+ curve.animationCurveValue = AnimationCurve.Linear(0, 1, 1, 1);
+
+ themeObjSettings = ThemeInspector.ChangeThemeProperty(themeObjSettings.arraySize - 1, themeObjSettings, serializedTarget, GetStates(), true);
+
+ themeObj.ApplyModifiedProperties();
+ }
+
+ protected virtual void RemoveThemeProperty(int[] arr)
+ {
+ int profile = arr[0];
+ int theme = arr[1];
+ int index = arr[2];
+
+ SerializedProperty sItem = profileList.GetArrayElementAtIndex(profile);
+ SerializedProperty themes = sItem.FindPropertyRelative("Themes");
+
+ SerializedProperty themeItem = themes.GetArrayElementAtIndex(theme);
+ SerializedObject themeObj = new SerializedObject(themeItem.objectReferenceValue);
+ themeObj.Update();
+
+ SerializedProperty themeObjSettings = themeObj.FindProperty("Settings");
+ themeObjSettings.DeleteArrayElementAtIndex(index);
+
+ themeObj.ApplyModifiedProperties();
+
+ }
+
+ protected virtual SerializedObject ChangeThemeProperty(int index, SerializedObject themeObj, SerializedProperty target, bool isNew = false)
+ {
+
+ SerializedProperty themeObjSettings = themeObj.FindProperty("Settings");
+
+ themeObjSettings = ThemeInspector.ChangeThemeProperty(index, themeObjSettings, target, GetStates(), isNew);
+
+ return themeObj;
+ }
+
+ protected void CreateTheme(int[] arr, SerializedProperty prop = null)
+ {
+ SerializedProperty sItem = profileList.GetArrayElementAtIndex(arr[0]);
+ SerializedProperty themes = sItem.FindPropertyRelative("Themes");
+ SerializedProperty themeItem = themes.GetArrayElementAtIndex(arr[1]);
+
+ SerializedProperty gameObject = sItem.FindPropertyRelative("Target");
+
+ GameObject host = gameObject.objectReferenceValue as GameObject;
+ string path = "Assets/Themes";
+
+ if (host != null)
+ {
+ string themeName = host.name + "Theme.asset";
+
+ path = EditorUtility.SaveFilePanelInProject(
+ "Save New Theme",
+ themeName,
+ "asset",
+ "Create a name and select a location for this theme");
+
+ if (path.Length != 0)
+ {
+ Theme newTheme = ScriptableObject.CreateInstance();
+ AssetDatabase.CreateAsset(newTheme, path);
+ themeItem.objectReferenceValue = newTheme;
+ }
+ }
+ }
+
+ /*
+ * EVENTS
+ */
+
+ protected void RemoveEvent(int index, SerializedProperty prop = null)
+ {
+ SerializedProperty events = serializedObject.FindProperty("Events");
+ if (events.arraySize > index)
+ {
+ events.DeleteArrayElementAtIndex(index);
+ }
+ }
+
+ protected void AddEvent(int index)
+ {
+ SerializedProperty events = serializedObject.FindProperty("Events");
+ events.InsertArrayElementAtIndex(events.arraySize);
+
+ }
+
+ protected void ChangeEvent(int[] indexArray, SerializedProperty prop = null)
+ {
+ SerializedProperty className = prop.FindPropertyRelative("ClassName");
+ SerializedProperty name = prop.FindPropertyRelative("Name");
+ SerializedProperty settings = prop.FindPropertyRelative("Settings");
+ SerializedProperty hideEvents = prop.FindPropertyRelative("HideUnityEvents");
+
+ if (!String.IsNullOrEmpty(className.stringValue))
+ {
+ InteractableEvent.ReceiverData data = eventList[indexArray[0]].AddReceiver(eventTypes[indexArray[1]]);
+ name.stringValue = data.Name;
+ hideEvents.boolValue = data.HideUnityEvents;
+
+ InspectorFieldsUtility.PropertySettingsList(settings, data.Fields);
+ }
+ }
+
+ protected void SetupEventOptions()
+ {
+ InteractableEvent.EventLists lists = InteractableEvent.GetEventTypes();
+ eventTypes = lists.EventTypes.ToArray();
+ eventOptions = lists.EventNames.ToArray();
+ }
+
+ }
+#endif
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableInspector.cs.meta b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableInspector.cs.meta
new file mode 100644
index 00000000000..5d3f4b7af14
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableInspector.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 9ac3b8077532f2f42a90d7155ac5cde8
+timeCreated: 1517593721
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverInspector.cs b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverInspector.cs
new file mode 100644
index 00000000000..a07f61e60f9
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverInspector.cs
@@ -0,0 +1,47 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ [CustomEditor(typeof(InteractableReceiver))]
+ public class InteractableReceiverInspector : InteractableReceiverListInspector
+ {
+ protected override void OnEnable()
+ {
+ eventList = ((InteractableReceiver)target).Events;
+ SetupEventOptions();
+ }
+
+ public override void OnInspectorGUI()
+ {
+ serializedObject.Update();
+
+ RenderInspectorHeader();
+
+ SerializedProperty events = serializedObject.FindProperty("Events");
+
+ if (events.arraySize < 1)
+ {
+ AddEvent(0);
+ }
+ else
+ {
+ SerializedProperty eventItem = events.GetArrayElementAtIndex(0);
+ RenderEventSettings(eventItem, 0, eventOptions, ChangeEvent, null);
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ protected override void RemoveEvent(int index, SerializedProperty prop = null)
+ {
+ // do not remove events
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverInspector.cs.meta b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverInspector.cs.meta
new file mode 100644
index 00000000000..33c89907ea6
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverInspector.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f713ccdad5f6d574d933c7497fa61fec
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs
new file mode 100644
index 00000000000..9e6b95683ab
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs
@@ -0,0 +1,172 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Inspectors.Utilities;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events
+{
+ [CustomEditor(typeof(InteractableReceiverList))]
+ public class InteractableReceiverListInspector : Editor
+ {
+ protected List eventList;
+ protected string[] eventOptions;
+ protected Type[] eventTypes;
+
+ // indent tracker
+ protected static int indentOnSectionStart = 0;
+
+ protected virtual void OnEnable()
+ {
+ eventList = ((InteractableReceiverList)target).Events;
+ SetupEventOptions();
+ }
+
+ public override void OnInspectorGUI()
+ {
+ serializedObject.Update();
+
+ RenderInspectorHeader();
+
+ SerializedProperty events = serializedObject.FindProperty("Events");
+
+ if(events.arraySize < 1)
+ {
+ AddEvent(0);
+ }
+ else
+ {
+ for (int i = 0; i < events.arraySize; i++)
+ {
+ SerializedProperty eventItem = events.GetArrayElementAtIndex(i);
+
+ InspectorUIUtility.ListButtonEvent removeEventRef = null;
+ if (i > 0)
+ {
+ removeEventRef = RemoveEvent;
+ }
+
+ RenderEventSettings(eventItem, i, eventOptions, ChangeEvent, removeEventRef);
+ }
+
+ if (eventOptions.Length > 1)
+ {
+ if (GUILayout.Button(new GUIContent("Add Event")))
+ {
+ AddEvent(events.arraySize);
+ }
+ }
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ protected virtual void RenderInspectorHeader()
+ {
+ SerializedProperty interactable = serializedObject.FindProperty("Interactable");
+ SerializedProperty searchScope = serializedObject.FindProperty("InteractableSearchScope");
+
+ EditorGUILayout.PropertyField(interactable, new GUIContent("Interactable","The Interactable that will be monitored"));
+
+ ReceiverBaseMonoBehavior.SearchScopes scope = (ReceiverBaseMonoBehavior.SearchScopes)searchScope.intValue;
+ scope = (ReceiverBaseMonoBehavior.SearchScopes)EditorGUILayout.EnumPopup(new GUIContent("Search Scope", "Where to look for an Interactable if one is not assigned"), scope);
+
+ if ((int)scope != searchScope.intValue)
+ {
+ searchScope.intValue = (int)scope;
+ }
+ }
+
+ protected virtual void RemoveEvent(int index, SerializedProperty prop = null)
+ {
+ SerializedProperty events = serializedObject.FindProperty("Events");
+ if (events.arraySize > index)
+ {
+ events.DeleteArrayElementAtIndex(index);
+ }
+ }
+
+ protected virtual void AddEvent(int index)
+ {
+ SerializedProperty events = serializedObject.FindProperty("Events");
+ events.InsertArrayElementAtIndex(events.arraySize);
+ }
+
+ protected virtual void ChangeEvent(int[] indexArray, SerializedProperty prop = null)
+ {
+ SerializedProperty className = prop.FindPropertyRelative("ClassName");
+ SerializedProperty name = prop.FindPropertyRelative("Name");
+ SerializedProperty settings = prop.FindPropertyRelative("Settings");
+ SerializedProperty hideEvents = prop.FindPropertyRelative("HideUnityEvents");
+
+ if (!String.IsNullOrEmpty(className.stringValue))
+ {
+ InteractableEvent.ReceiverData data = eventList[indexArray[0]].AddReceiver(eventTypes[indexArray[1]]);
+ name.stringValue = data.Name;
+ hideEvents.boolValue = data.HideUnityEvents;
+
+ InspectorFieldsUtility.PropertySettingsList(settings, data.Fields);
+ }
+ }
+
+ public static void RenderEventSettings(SerializedProperty eventItem, int index, string[] options, InspectorUIUtility.MultiListButtonEvent changeEvent, InspectorUIUtility.ListButtonEvent removeEvent)
+ {
+ EditorGUILayout.BeginVertical("Box");
+ SerializedProperty uEvent = eventItem.FindPropertyRelative("Event");
+ SerializedProperty eventName = eventItem.FindPropertyRelative("Name");
+ SerializedProperty className = eventItem.FindPropertyRelative("ClassName");
+ SerializedProperty hideEvents = eventItem.FindPropertyRelative("HideUnityEvents");
+
+ // show event dropdown
+ int id = InspectorUIUtility.ReverseLookup(className.stringValue, options);
+ int newId = EditorGUILayout.Popup("Select Event Type", id, options);
+
+ if (id != newId || String.IsNullOrEmpty(className.stringValue))
+ {
+ className.stringValue = options[newId];
+
+ changeEvent(new int[] { index, newId }, eventItem);
+ }
+
+ if (!hideEvents.boolValue)
+ {
+ EditorGUILayout.PropertyField(uEvent, new GUIContent(eventName.stringValue));
+ }
+
+ // show event properties
+ EditorGUI.indentLevel = indentOnSectionStart + 1;
+ SerializedProperty eventSettings = eventItem.FindPropertyRelative("Settings");
+ for (int j = 0; j < eventSettings.arraySize; j++)
+ {
+ SerializedProperty propertyField = eventSettings.GetArrayElementAtIndex(j);
+ bool isEvent = InspectorFieldsUtility.IsPropertyType(propertyField, Core.Utilities.InspectorFields.InspectorField.FieldTypes.Event);
+
+ if (!hideEvents.boolValue || !isEvent)
+ {
+ InspectorFieldsUtility.DisplayPropertyField(eventSettings.GetArrayElementAtIndex(j));
+ }
+ }
+ EditorGUI.indentLevel = indentOnSectionStart;
+
+ EditorGUILayout.Space();
+
+ if(removeEvent != null)
+ {
+ InspectorUIUtility.FlexButton(new GUIContent("Remove Event"), index, removeEvent);
+ }
+
+ EditorGUILayout.EndVertical();
+ }
+
+ protected virtual void SetupEventOptions()
+ {
+ InteractableEvent.EventLists lists = InteractableEvent.GetEventTypes();
+ eventTypes = lists.EventTypes.ToArray();
+ eventOptions = lists.EventNames.ToArray();
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs.meta b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs.meta
new file mode 100644
index 00000000000..e7597366d2a
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c07e122013e243d46acf628ac0c1d0af
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/StatesInspector.cs b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/StatesInspector.cs
new file mode 100644
index 00000000000..410e788bca1
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/StatesInspector.cs
@@ -0,0 +1,127 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Inspectors.Utilities;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States
+{
+#if UNITY_EDITOR
+ [CustomEditor(typeof(States))]
+ public class StatesInspector : Editor
+ {
+ protected States instance;
+ protected SerializedProperty stateList;
+
+ // list of InteractableStates
+ protected Type[] stateTypes;
+
+ // list of State names
+ protected string[] stateOptions;
+
+
+ // indent tracker
+ protected static int indentOnSectionStart = 0;
+
+
+ protected virtual void OnEnable()
+ {
+ instance = (States)target;
+
+ stateList = serializedObject.FindProperty("StateList");
+ instance.SetupStateOptions();
+ }
+
+ public override void OnInspectorGUI()
+ {
+ //base.OnInspectorGUI();
+ serializedObject.Update();
+
+ InspectorUIUtility.DrawTitle("States");
+ InspectorUIUtility.DrawNotice("Manage state configurations to drive Interactables or Tansitions");
+
+ // get the list of options and InteractableStates
+ stateOptions = instance.StateOptions;
+ stateTypes = instance.StateTypes;
+
+ SerializedProperty stateLogicName = serializedObject.FindProperty("StateLogicName");
+ int option = States.ReverseLookup(stateLogicName.stringValue, stateOptions);
+
+ int newLogic = EditorGUILayout.Popup("State Model", option, stateOptions);
+ if (option != newLogic)
+ {
+ stateLogicName.stringValue = stateOptions[newLogic];
+ }
+
+ int bitCount = 0;
+ for (int i = 0; i < stateList.arraySize; i++)
+ {
+ if (i == 0)
+ {
+ bitCount += 1;
+ }
+ else
+ {
+ bitCount += bitCount;
+ }
+
+ EditorGUILayout.BeginVertical("Box");
+ SerializedProperty stateItem = stateList.GetArrayElementAtIndex(i);
+
+ SerializedProperty name = stateItem.FindPropertyRelative("Name");
+ SerializedProperty index = stateItem.FindPropertyRelative("ActiveIndex");
+ SerializedProperty bit = stateItem.FindPropertyRelative("Bit");
+
+ index.intValue = i;
+
+ EditorGUILayout.BeginHorizontal();
+ string[] stateEnums = GetStateOptions();
+ int enumIndex = States.ReverseLookup(name.stringValue, stateEnums);
+
+ int newEnumIndex = EditorGUILayout.Popup(name.stringValue + " (" + bitCount + ")", enumIndex, stateEnums);
+ if (enumIndex != newEnumIndex)
+ {
+ name.stringValue = stateEnums[newEnumIndex];
+ }
+
+ InspectorUIUtility.SmallButton(new GUIContent(InspectorUIUtility.Minus, "Remove State"), i, RemoveState);
+
+ EditorGUILayout.EndHorizontal();
+
+ // assign the bitcount based on location in the list
+ bit.intValue = bitCount;
+
+ EditorGUILayout.EndVertical();
+ }
+
+ InspectorUIUtility.FlexButton(new GUIContent("+", "Add Theme Property"), 0, AddState);
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ protected void AddState(int index, SerializedProperty prop = null)
+ {
+ stateList.InsertArrayElementAtIndex(stateList.arraySize);
+ }
+
+ protected void RemoveState(int index, SerializedProperty prop = null)
+ {
+ stateList.DeleteArrayElementAtIndex(index);
+ }
+
+ ///
+ /// Get a list of state names
+ ///
+ ///
+ protected string[] GetStateOptions()
+ {
+ return Enum.GetNames(typeof(InteractableStates.InteractableStateEnum));
+ }
+ }
+#endif
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/StatesInspector.cs.meta b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/StatesInspector.cs.meta
new file mode 100644
index 00000000000..a4b97a760e9
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/StatesInspector.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 420b60a2262ca854bb3e1c3c5c6d660f
+timeCreated: 1522264892
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ThemeInspector.cs b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ThemeInspector.cs
new file mode 100644
index 00000000000..843728d2617
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ThemeInspector.cs
@@ -0,0 +1,1271 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Inspectors.Utilities;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Profile;
+using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.States;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEditor.Animations;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Themes
+{
+ ///
+ /// Inspector for themes, and used by Interactable
+ ///
+
+ // TODO: !!!!! need to make sure we refresh the shader list when the target changes
+
+ // FIX : when adding a new setting, the rendered values is a dupe of the previous values in the list, but the dropdown is default.
+
+#if UNITY_EDITOR
+ [CustomEditor(typeof(Theme))]
+ public class ThemeInspector : Editor
+ {
+ protected SerializedProperty settings;
+
+ protected static string[] themeOptions;
+ protected static Type[] themeTypes;
+ protected static string[] shaderOptions;
+ protected static State[] themeStates;
+
+ // indent tracker
+ protected static int indentOnSectionStart = 0;
+
+ protected GUIStyle boxStyle;
+ protected bool layoutComplete = false;
+
+ protected virtual void OnEnable()
+ {
+ settings = serializedObject.FindProperty("Settings");
+ SetupThemeOptions();
+ }
+
+ public override void OnInspectorGUI()
+ {
+ //RenderBaseInspector()
+ RenderCustomInspector();
+ }
+
+ protected virtual void RenderBaseInspector()
+ {
+ base.OnInspectorGUI();
+ }
+
+ public virtual void RenderCustomInspector()
+ {
+ //base.OnInspectorGUI();
+ serializedObject.Update();
+
+ bool hasStates = false;
+ if (layoutComplete || Event.current.type == EventType.Layout)
+ {
+ boxStyle = InspectorUIUtility.Box(0);
+
+ GUILayout.BeginVertical(boxStyle);
+ hasStates = RenderStates();
+
+ GUILayout.EndVertical();
+ }
+
+ if (!hasStates)
+ {
+ serializedObject.ApplyModifiedProperties();
+ return;
+ }
+
+
+ if (GetStates().Length < 1)
+ {
+ serializedObject.ApplyModifiedProperties();
+ return;
+ }
+
+ if (settings.arraySize < 1)
+ {
+ AddThemeProperty(new int[] { 0 });
+ }
+
+ if (layoutComplete || Event.current.type == EventType.Layout)
+ {
+
+ RenderThemeSettings(settings, null, themeOptions, null, new int[] { 0, -1, 0 }, GetStates());
+
+ InspectorUIUtility.FlexButton(new GUIContent("+", "Add Theme Property"), new int[] { 0 }, AddThemeProperty);
+
+ // render a list of all the properties from the theme based on state
+ RenderThemeStates(settings, GetStates(), 0);
+
+ layoutComplete = true;
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ ///
+ /// draw the states property field for assigning states
+ /// Set the default state if one does not exist
+ ///
+ ///
+ protected bool RenderStates()
+ {
+ // States
+ bool showStates = false;
+ bool drawerStarted = false;
+ SerializedProperty states = serializedObject.FindProperty("States");
+ if (states.objectReferenceValue != null)
+ {
+ string statesPrefKey = target.name + "Settings_States";
+ bool prefsShowStates = EditorPrefs.GetBool(statesPrefKey);
+ EditorGUI.indentLevel = indentOnSectionStart + 1;
+ showStates = InspectorUIUtility.DrawSectionStart(states.objectReferenceValue.name + " (Click to edit)", indentOnSectionStart, prefsShowStates, FontStyle.Normal, false);
+ drawerStarted = true;
+
+ if (showStates != prefsShowStates)
+ {
+ EditorPrefs.SetBool(statesPrefKey, showStates);
+ }
+ }
+ else
+ {
+ string[] stateLocations = AssetDatabase.FindAssets("DefaultInteractableStates");
+ if (stateLocations.Length > 0)
+ {
+ for (int k = 0; k < stateLocations.Length; k++)
+ {
+ string path = AssetDatabase.GUIDToAssetPath(stateLocations[0]);
+ States.States defaultStates = (States.States)AssetDatabase.LoadAssetAtPath(path, typeof(States.States));
+ if (defaultStates != null)
+ {
+ states.objectReferenceValue = defaultStates;
+ break;
+ }
+ }
+ }
+ else
+ {
+ showStates = true;
+ }
+ }
+
+ if (showStates)
+ {
+ EditorGUILayout.PropertyField(states, new GUIContent("States", "The States this Interactable is based on"), true);
+ }
+
+ if (drawerStarted)
+ {
+ InspectorUIUtility.DrawSectionEnd(indentOnSectionStart);
+ }
+
+ if (states.objectReferenceValue == null)
+ {
+ InspectorUIUtility.DrawError("Please assign a States object! Ex: DefaultInteractableStates");
+ serializedObject.ApplyModifiedProperties();
+ return false;
+ }
+
+ return true;
+ }
+
+ ///
+ /// Get the list of states from the theme
+ ///
+ ///
+ protected virtual State[] GetStates()
+ {
+ Theme theme = (Theme)target;
+ themeStates = theme.GetStates();
+ return themeStates;
+ }
+
+ protected void SetupThemeOptions()
+ {
+ InteractableProfileItem.ThemeLists lists = InteractableProfileItem.GetThemeTypes();
+ themeOptions = lists.Names.ToArray();
+ themeTypes = lists.Types.ToArray();
+ }
+
+ protected virtual void AddThemeProperty(int[] arr, SerializedProperty prop = null)
+ {
+ int index = arr[0];
+
+ SerializedProperty themeObjSettings = serializedObject.FindProperty("Settings");
+ themeObjSettings.InsertArrayElementAtIndex(index);
+
+ AddThemePropertySettings(themeObjSettings);
+ ChangeThemeProperty(themeObjSettings.arraySize - 1, themeObjSettings, null, GetStates(), true);
+ }
+
+ ///
+ /// set up the theme properties when a theme property is added
+ ///
+ ///
+ protected virtual void AddThemePropertySettings(SerializedProperty themeSettings)
+ {
+ SerializedProperty settingsItem = themeSettings.GetArrayElementAtIndex(themeSettings.arraySize - 1);
+ SerializedProperty className = settingsItem.FindPropertyRelative("Name");
+ if (themeSettings.arraySize == 1)
+ {
+ className.stringValue = "ScaleOffsetColorTheme";
+ }
+ else
+ {
+ className.stringValue = themeOptions[0];
+ }
+
+ SerializedProperty easing = settingsItem.FindPropertyRelative("Easing");
+
+ SerializedProperty time = easing.FindPropertyRelative("LerpTime");
+ SerializedProperty curve = easing.FindPropertyRelative("Curve");
+ time.floatValue = 0.5f;
+ curve.animationCurveValue = AnimationCurve.Linear(0, 1, 1, 1);
+ }
+
+ protected static void RemoveThemeProperty(int[] arr, SerializedProperty prop = null)
+ {
+ int index = arr[0];
+
+ RemoveThemePropertySettings(prop, index);
+ }
+
+ protected static void RemoveThemePropertySettings(SerializedProperty themeSettings, int index)
+ {
+ themeSettings.DeleteArrayElementAtIndex(index);
+ }
+
+ public static SerializedProperty ChangeThemeProperty(int index, SerializedProperty themeSettings, SerializedProperty target, State[] states, bool isNew = false)
+ {
+ SerializedProperty settingsItem = themeSettings.GetArrayElementAtIndex(index);
+
+ SerializedProperty className = settingsItem.FindPropertyRelative("Name");
+
+ InteractableProfileItem.ThemeLists lists = InteractableProfileItem.GetThemeTypes();
+ string[] options = lists.Names.ToArray();
+ Type[] types = lists.Types.ToArray();
+
+ // get class value types
+ if (!String.IsNullOrEmpty(className.stringValue))
+ {
+ int propIndex = InspectorUIUtility.ReverseLookup(className.stringValue, options);
+ GameObject renderHost = null;
+ if (target != null)
+ {
+ renderHost = (GameObject)target.objectReferenceValue;
+ }
+
+ InteractableThemeBase themeBase = (InteractableThemeBase)Activator.CreateInstance(types[propIndex], renderHost);
+
+ // does this object have the right component types
+ SerializedProperty isValid = settingsItem.FindPropertyRelative("IsValid");
+ SerializedProperty noEasing = settingsItem.FindPropertyRelative("NoEasing");
+ noEasing.boolValue = themeBase.NoEasing;
+
+ bool valid = false;
+
+ bool hasText = false;
+ bool hasRenderer = false;
+
+ if (renderHost != null)
+ {
+ for (int i = 0; i < themeBase.Types.Length; i++)
+ {
+ Type type = themeBase.Types[i];
+ if (renderHost.gameObject.GetComponent(type))
+ {
+ if (type == typeof(TextMesh) || type == typeof(Text))
+ {
+ hasText = true;
+ }
+
+ if (type == typeof(Renderer))
+ {
+ hasRenderer = true;
+ }
+
+ valid = true;
+ }
+ }
+ }
+
+ isValid.boolValue = valid;
+
+ // setup the values
+ // get the state names
+
+ List properties = themeBase.ThemeProperties;
+
+ SerializedProperty sProps = settingsItem.FindPropertyRelative("Properties");
+ SerializedProperty history = settingsItem.FindPropertyRelative("History");
+
+ if (isNew)
+ {
+ sProps.ClearArray();
+ }
+ else
+ {
+ // stick the copy in the new format into sProps.
+ sProps = CopyPropertiesFromHistory(sProps, properties, history, out history);
+ }
+
+ for (int i = 0; i < properties.Count; i++)
+ {
+ bool newItem = false;
+ if (isNew)
+ {
+ sProps.InsertArrayElementAtIndex(sProps.arraySize);
+ newItem = true;
+ }
+
+ SerializedProperty item = sProps.GetArrayElementAtIndex(i);
+ SerializedProperty name = item.FindPropertyRelative("Name");
+ SerializedProperty type = item.FindPropertyRelative("Type");
+ SerializedProperty values = item.FindPropertyRelative("Values");
+
+ name.stringValue = properties[i].Name;
+ type.intValue = (int)properties[i].Type;
+
+ int valueCount = states.Length;
+
+ for (int j = 0; j < valueCount; j++)
+ {
+ if (values.arraySize <= j)
+ {
+ values.InsertArrayElementAtIndex(values.arraySize);
+ newItem = true;
+ }
+
+ SerializedProperty valueItem = values.GetArrayElementAtIndex(j);
+ SerializedProperty valueName = valueItem.FindPropertyRelative("Name");
+ valueName.stringValue = states[j].Name;
+
+ if (newItem && properties[i].Default != null)
+ {
+ if ((InteractableThemePropertyValueTypes)type.intValue == InteractableThemePropertyValueTypes.AnimatorTrigger)
+ {
+ InteractableThemePropertyValue propValue = new InteractableThemePropertyValue();
+ propValue.Name = valueName.stringValue;
+ propValue.String = states[j].Name;
+
+ SerializeThemeValues(propValue, valueItem, type.intValue);
+ }
+ else
+ {
+ // assign default values if new item
+ SerializeThemeValues(properties[i].Default, valueItem, type.intValue);
+ }
+ }
+ }
+
+ //TODO: make sure shader has currently selected property
+
+ List shaderPropFilter = new List();
+ // do we need a propId?
+ if (properties[i].Type == InteractableThemePropertyValueTypes.Color)
+ {
+ if ((!hasText && hasRenderer) || (!hasText && target == null))
+ {
+ shaderPropFilter.Add(ShaderPropertyType.Color);
+ }
+ else if (!hasText && !hasRenderer)
+ {
+ valid = false;
+ }
+ }
+
+ if (properties[i].Type == InteractableThemePropertyValueTypes.ShaderFloat || properties[i].Type == InteractableThemePropertyValueTypes.shaderRange)
+ {
+ if (hasRenderer || target == null)
+ {
+ shaderPropFilter.Add(ShaderPropertyType.Float);
+ shaderPropFilter.Add(ShaderPropertyType.Range);
+ }
+ else
+ {
+ valid = false;
+ }
+ }
+
+ SerializedProperty propId = item.FindPropertyRelative("PropId");
+ if (newItem)
+ {
+ propId.intValue = 0;
+ }
+
+ SerializedProperty shaderList = item.FindPropertyRelative("ShaderOptions");
+ SerializedProperty shaderNames = item.FindPropertyRelative("ShaderOptionNames");
+ SerializedProperty shaderName = item.FindPropertyRelative("ShaderName");
+
+ shaderList.ClearArray();
+ shaderNames.ClearArray();
+
+ if (valid && shaderPropFilter.Count > 0)
+ {
+ Renderer renderer = null;
+ if (renderHost != null)
+ {
+ renderer = renderHost.gameObject.GetComponent();
+ }
+
+ ShaderInfo info = GetShaderProperties(renderer, shaderPropFilter.ToArray());
+ ShaderProperties[] shaderProps = info.ShaderOptions;
+ shaderName.stringValue = info.Name;
+ for (int n = 0; n < shaderProps.Length; n++)
+ {
+ shaderList.InsertArrayElementAtIndex(shaderList.arraySize);
+ SerializedProperty shaderListItem = shaderList.GetArrayElementAtIndex(shaderList.arraySize - 1);
+ SerializedProperty shaderListName = shaderListItem.FindPropertyRelative("Name");
+ SerializedProperty shaderListType = shaderListItem.FindPropertyRelative("Type");
+ SerializedProperty shaderListRange = shaderListItem.FindPropertyRelative("Range");
+
+ shaderListName.stringValue = shaderProps[n].Name;
+ shaderListType.intValue = (int)shaderProps[n].Type;
+ shaderListRange.vector2Value = shaderProps[n].Range;
+
+ shaderNames.InsertArrayElementAtIndex(shaderNames.arraySize);
+ SerializedProperty names = shaderNames.GetArrayElementAtIndex(shaderNames.arraySize - 1);
+ names.stringValue = shaderProps[n].Name;
+ }
+
+ }
+ }
+
+ if (!valid)
+ {
+ isValid.boolValue = false;
+ }
+ }
+
+ return themeSettings;
+ }
+
+ public static SerializedProperty CopyPropertiesFromHistory(SerializedProperty oldProperties, List newProperties, SerializedProperty history, out SerializedProperty historyOut)
+ {
+ int oldCount = oldProperties.arraySize;
+
+ for (int i = oldCount - 1; i > -1; i--)
+ {
+ if (history != null)
+ {
+ SerializedProperty item = oldProperties.GetArrayElementAtIndex(i);
+ SerializedProperty name = item.FindPropertyRelative("Name");
+ SerializedProperty type = item.FindPropertyRelative("Type");
+
+ bool hasProperty = false;
+ for (int j = 0; j < history.arraySize; j++)
+ {
+ SerializedProperty historyItem = history.GetArrayElementAtIndex(j);
+ SerializedProperty historyName = historyItem.FindPropertyRelative("Name");
+ SerializedProperty historyType = historyItem.FindPropertyRelative("Type");
+
+ if (name.stringValue == historyName.stringValue && type.intValue == historyType.intValue)
+ {
+ hasProperty = true;
+
+ // update history
+ historyItem = CopyThemeProperties(item, historyItem);
+ break;
+ }
+ }
+
+ if (!hasProperty)
+ {
+ // add new item to history
+ history.InsertArrayElementAtIndex(history.arraySize);
+ SerializedProperty historyItem = history.GetArrayElementAtIndex(history.arraySize - 1);
+ historyItem = CopyThemeProperties(item, historyItem);
+ }
+ }
+
+ oldProperties.DeleteArrayElementAtIndex(i);
+ }
+
+ historyOut = history;
+
+ for (int i = 0; i < newProperties.Count; i++)
+ {
+ oldProperties.InsertArrayElementAtIndex(oldProperties.arraySize);
+ SerializedProperty newProp = oldProperties.GetArrayElementAtIndex(oldProperties.arraySize - 1);
+
+ SerializedProperty newName = newProp.FindPropertyRelative("Name");
+ SerializedProperty newType = newProp.FindPropertyRelative("Type");
+ SerializedProperty newValues = newProp.FindPropertyRelative("Values");
+ SerializedProperty newPropId = newProp.FindPropertyRelative("PropId");
+ newName.stringValue = newProperties[i].Name;
+ newType.intValue = (int)newProperties[i].Type;
+
+ if (history != null)
+ {
+ for (int j = 0; j < history.arraySize; j++)
+ {
+ SerializedProperty item = history.GetArrayElementAtIndex(j);
+ SerializedProperty name = item.FindPropertyRelative("Name");
+ SerializedProperty type = item.FindPropertyRelative("Type");
+ SerializedProperty values = item.FindPropertyRelative("Values");
+ SerializedProperty propId = item.FindPropertyRelative("PropId");
+
+ if (name.stringValue == newName.stringValue && type.intValue == newType.intValue)
+ {
+ newPropId.intValue = propId.intValue;
+
+ for (int h = 0; h < values.arraySize; h++)
+ {
+ if (h >= newValues.arraySize)
+ {
+ newValues.InsertArrayElementAtIndex(newValues.arraySize);
+ }
+
+ SerializedProperty newValue = newValues.GetArrayElementAtIndex(h);
+ SerializedProperty valueItem = values.GetArrayElementAtIndex(h);
+ newValue = CopyThemeValues(valueItem, newValue, newType.intValue);
+ }
+ }
+ }
+ }
+ }
+
+ return oldProperties;
+ }
+
+ ///
+ /// copy some theme property values from serialized properties
+ ///
+ ///
+ ///
+ ///
+ public static SerializedProperty CopyThemeProperties(SerializedProperty copyFrom, SerializedProperty copyTo)
+ {
+ SerializedProperty newName = copyTo.FindPropertyRelative("Name");
+ SerializedProperty newType = copyTo.FindPropertyRelative("Type");
+ SerializedProperty newValues = copyTo.FindPropertyRelative("Values");
+ SerializedProperty newPropId = copyTo.FindPropertyRelative("PropId");
+
+ SerializedProperty oldName = copyFrom.FindPropertyRelative("Name");
+ SerializedProperty oldType = copyFrom.FindPropertyRelative("Type");
+ SerializedProperty oldValues = copyFrom.FindPropertyRelative("Values");
+ SerializedProperty oldPropId = copyFrom.FindPropertyRelative("PropId");
+
+ newName.stringValue = oldName.stringValue;
+ newType.intValue = oldType.intValue;
+ newPropId.intValue = oldPropId.intValue;
+
+ newValues.ClearArray();
+
+ for (int h = 0; h < oldValues.arraySize; h++)
+ {
+ newValues.InsertArrayElementAtIndex(newValues.arraySize);
+ SerializedProperty newValue = newValues.GetArrayElementAtIndex(newValues.arraySize - 1);
+ SerializedProperty valueItem = oldValues.GetArrayElementAtIndex(h);
+ newValue = CopyThemeValues(valueItem, newValue, newType.intValue);
+ }
+
+ return copyTo;
+ }
+
+ ///
+ /// copy theme values from serialized properties
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static SerializedProperty CopyThemeValues(SerializedProperty copyFrom, SerializedProperty copyTo, int type)
+ {
+ SerializedProperty floatFrom;
+ SerializedProperty floatTo;
+ SerializedProperty vector2From;
+ SerializedProperty vector2To;
+ SerializedProperty stringFrom;
+ SerializedProperty stringTo;
+
+ switch ((InteractableThemePropertyValueTypes)type)
+ {
+ case InteractableThemePropertyValueTypes.Float:
+ floatFrom = copyFrom.FindPropertyRelative("Float");
+ floatTo = copyTo.FindPropertyRelative("Float");
+ floatTo.floatValue = floatFrom.floatValue;
+ break;
+ case InteractableThemePropertyValueTypes.Int:
+ SerializedProperty intFrom = copyFrom.FindPropertyRelative("Int");
+ SerializedProperty intTo = copyTo.FindPropertyRelative("Int");
+ intTo.intValue = intFrom.intValue;
+ break;
+ case InteractableThemePropertyValueTypes.Color:
+ SerializedProperty colorFrom = copyFrom.FindPropertyRelative("Color");
+ SerializedProperty colorTo = copyTo.FindPropertyRelative("Color");
+ colorTo.colorValue = colorFrom.colorValue;
+ break;
+ case InteractableThemePropertyValueTypes.ShaderFloat:
+ floatFrom = copyFrom.FindPropertyRelative("Float");
+ floatTo = copyTo.FindPropertyRelative("Float");
+ floatTo.floatValue = floatFrom.floatValue;
+ break;
+ case InteractableThemePropertyValueTypes.shaderRange:
+ vector2From = copyFrom.FindPropertyRelative("Vector2");
+ vector2To = copyTo.FindPropertyRelative("Vector2");
+ vector2To.vector2Value = vector2From.vector2Value;
+ break;
+ case InteractableThemePropertyValueTypes.Vector2:
+ vector2From = copyFrom.FindPropertyRelative("Vector2");
+ vector2To = copyTo.FindPropertyRelative("Vector2");
+ vector2To.vector2Value = vector2From.vector2Value;
+ break;
+ case InteractableThemePropertyValueTypes.Vector3:
+ SerializedProperty vector3From = copyFrom.FindPropertyRelative("Vector3");
+ SerializedProperty vector3To = copyTo.FindPropertyRelative("Vector3");
+ vector3To.vector3Value = vector3From.vector3Value;
+ break;
+ case InteractableThemePropertyValueTypes.Vector4:
+ SerializedProperty vector4From = copyFrom.FindPropertyRelative("Vector4");
+ SerializedProperty vector4To = copyTo.FindPropertyRelative("Vector4");
+ vector4To.vector4Value = vector4From.vector4Value;
+ break;
+ case InteractableThemePropertyValueTypes.Quaternion:
+ SerializedProperty quaternionFrom = copyFrom.FindPropertyRelative("Quaternion");
+ SerializedProperty quaternionTo = copyTo.FindPropertyRelative("Quaternion");
+ quaternionTo.quaternionValue = quaternionFrom.quaternionValue;
+ break;
+ case InteractableThemePropertyValueTypes.Texture:
+ SerializedProperty textureFrom = copyFrom.FindPropertyRelative("Texture");
+ SerializedProperty textureTo = copyTo.FindPropertyRelative("Texture");
+ textureTo.objectReferenceValue = textureFrom.objectReferenceValue;
+ break;
+ case InteractableThemePropertyValueTypes.Material:
+ SerializedProperty materialFrom = copyFrom.FindPropertyRelative("Material");
+ SerializedProperty materialTo = copyTo.FindPropertyRelative("Material");
+ materialTo.objectReferenceValue = materialFrom.objectReferenceValue;
+ break;
+ case InteractableThemePropertyValueTypes.AudioClip:
+ SerializedProperty audioClipFrom = copyFrom.FindPropertyRelative("AudioClip");
+ SerializedProperty audioClipTo = copyTo.FindPropertyRelative("AudioClip");
+ audioClipTo.objectReferenceValue = audioClipFrom.objectReferenceValue;
+ break;
+ case InteractableThemePropertyValueTypes.Animaiton:
+ SerializedProperty animationFrom = copyFrom.FindPropertyRelative("Animation");
+ SerializedProperty animationTo = copyTo.FindPropertyRelative("Animation");
+ animationTo.objectReferenceValue = animationFrom.objectReferenceValue;
+ break;
+ case InteractableThemePropertyValueTypes.GameObject:
+ SerializedProperty gameObjectFrom = copyFrom.FindPropertyRelative("GameObject");
+ SerializedProperty gameObjectTo = copyTo.FindPropertyRelative("GameObject");
+ gameObjectTo.objectReferenceValue = gameObjectFrom.objectReferenceValue;
+ break;
+ case InteractableThemePropertyValueTypes.String:
+ stringFrom = copyFrom.FindPropertyRelative("String");
+ stringTo = copyTo.FindPropertyRelative("String");
+ stringTo.stringValue = stringFrom.stringValue;
+ break;
+ case InteractableThemePropertyValueTypes.Bool:
+ SerializedProperty boolFrom = copyFrom.FindPropertyRelative("Bool");
+ SerializedProperty boolTo = copyTo.FindPropertyRelative("Bool");
+ boolTo.boolValue = boolFrom.boolValue;
+ break;
+ case InteractableThemePropertyValueTypes.AnimatorTrigger:
+ stringFrom = copyFrom.FindPropertyRelative("String");
+ stringTo = copyTo.FindPropertyRelative("String");
+ stringTo.stringValue = stringFrom.stringValue;
+ break;
+ default:
+ break;
+ }
+
+ return copyTo;
+ }
+
+ ///
+ /// load theme property values into a serialized property
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static SerializedProperty SerializeThemeValues(InteractableThemePropertyValue copyFrom, SerializedProperty copyTo, int type)
+ {
+ SerializedProperty floatTo;
+ SerializedProperty vector2To;
+ SerializedProperty stringTo;
+
+ switch ((InteractableThemePropertyValueTypes)type)
+ {
+ case InteractableThemePropertyValueTypes.Float:
+ floatTo = copyTo.FindPropertyRelative("Float");
+ floatTo.floatValue = copyFrom.Float;
+ break;
+ case InteractableThemePropertyValueTypes.Int:
+ SerializedProperty intTo = copyTo.FindPropertyRelative("Int");
+ intTo.intValue = copyFrom.Int;
+ break;
+ case InteractableThemePropertyValueTypes.Color:
+ SerializedProperty colorTo = copyTo.FindPropertyRelative("Color");
+ colorTo.colorValue = copyFrom.Color;
+ break;
+ case InteractableThemePropertyValueTypes.ShaderFloat:
+ floatTo = copyTo.FindPropertyRelative("Float");
+ floatTo.floatValue = copyFrom.Float;
+ break;
+ case InteractableThemePropertyValueTypes.shaderRange:
+ vector2To = copyTo.FindPropertyRelative("Vector2");
+ vector2To.vector2Value = copyFrom.Vector2;
+ break;
+ case InteractableThemePropertyValueTypes.Vector2:
+ vector2To = copyTo.FindPropertyRelative("Vector2");
+ vector2To.vector2Value = copyFrom.Vector2;
+ break;
+ case InteractableThemePropertyValueTypes.Vector3:
+ SerializedProperty vector3To = copyTo.FindPropertyRelative("Vector3");
+ vector3To.vector3Value = copyFrom.Vector3;
+ break;
+ case InteractableThemePropertyValueTypes.Vector4:
+ SerializedProperty vector4To = copyTo.FindPropertyRelative("Vector4");
+ vector4To.vector4Value = copyFrom.Vector4;
+ break;
+ case InteractableThemePropertyValueTypes.Quaternion:
+ SerializedProperty quaternionTo = copyTo.FindPropertyRelative("Quaternion");
+ quaternionTo.quaternionValue = copyFrom.Quaternion;
+ break;
+ case InteractableThemePropertyValueTypes.Texture:
+ SerializedProperty textureTo = copyTo.FindPropertyRelative("Texture");
+ textureTo.objectReferenceValue = copyFrom.Texture;
+ break;
+ case InteractableThemePropertyValueTypes.Material:
+ SerializedProperty materialTo = copyTo.FindPropertyRelative("Material");
+ materialTo.objectReferenceValue = copyFrom.Material;
+ break;
+ case InteractableThemePropertyValueTypes.AudioClip:
+ SerializedProperty audioClipTo = copyTo.FindPropertyRelative("AudioClip");
+ audioClipTo.objectReferenceValue = copyFrom.AudioClip;
+ break;
+ case InteractableThemePropertyValueTypes.Animaiton:
+ SerializedProperty animationTo = copyTo.FindPropertyRelative("Animation");
+ animationTo.objectReferenceValue = copyFrom.Animation;
+ break;
+ case InteractableThemePropertyValueTypes.GameObject:
+ SerializedProperty gameObjectTo = copyTo.FindPropertyRelative("GameObject");
+ gameObjectTo.objectReferenceValue = copyFrom.GameObject;
+ break;
+ case InteractableThemePropertyValueTypes.String:
+ stringTo = copyTo.FindPropertyRelative("String");
+ stringTo.stringValue = copyFrom.String;
+ break;
+ case InteractableThemePropertyValueTypes.Bool:
+ SerializedProperty boolTo = copyTo.FindPropertyRelative("Bool");
+ boolTo.boolValue = copyFrom.Bool;
+ break;
+ case InteractableThemePropertyValueTypes.AnimatorTrigger:
+ stringTo = copyTo.FindPropertyRelative("String");
+ stringTo.stringValue = copyFrom.String;
+ break;
+ default:
+ break;
+ }
+
+ return copyTo;
+ }
+
+ public static void RenderThemeSettings(SerializedProperty themeSettings, SerializedObject themeObj, string[] themeOptions, SerializedProperty gameObject, int[] listIndex, State[] states)
+ {
+ GUIStyle box = InspectorUIUtility.Box(0);
+ if (themeObj != null)
+ {
+ box = InspectorUIUtility.Box(30);
+ }
+
+ for (int n = 0; n < themeSettings.arraySize; n++)
+ {
+ SerializedProperty settingsItem = themeSettings.GetArrayElementAtIndex(n);
+ SerializedProperty className = settingsItem.FindPropertyRelative("Name");
+
+ EditorGUI.indentLevel = indentOnSectionStart;
+
+ EditorGUILayout.BeginVertical(box);
+ // a dropdown for the type of theme, they should make sense
+ // show theme dropdown
+ int id = InspectorUIUtility.ReverseLookup(className.stringValue, themeOptions);
+
+ EditorGUILayout.BeginHorizontal();
+ int newId = EditorGUILayout.Popup("Theme Property", id, themeOptions);
+
+ if (n > 0)
+ {
+ // standalone or inside a profile? if(listIndex[1] < 1)
+ if (listIndex[1] < 0)
+ {
+ listIndex[2] = n;
+ }
+
+ bool removed = InspectorUIUtility.SmallButton(new GUIContent(InspectorUIUtility.Minus, "Remove Theme Property"), listIndex, RemoveThemeProperty, themeSettings);
+
+ if (removed)
+ {
+ continue;
+ }
+ }
+
+ EditorGUILayout.EndHorizontal();
+
+ if (id != newId)
+ {
+ className.stringValue = themeOptions[newId];
+
+ // add the themeOjects if in a profile?
+ //themeObj = ChangeThemeProperty(n, themeObj, gameObject);
+ themeSettings = ChangeThemeProperty(n, themeSettings, gameObject, states);
+ }
+
+ SerializedProperty sProps = settingsItem.FindPropertyRelative("Properties");
+ EditorGUI.indentLevel = indentOnSectionStart + 1;
+
+ int animatorCount = 0;
+ int idCount = 0;
+ for (int p = 0; p < sProps.arraySize; p++)
+ {
+
+ SerializedProperty item = sProps.GetArrayElementAtIndex(p);
+ SerializedProperty propId = item.FindPropertyRelative("PropId");
+ SerializedProperty name = item.FindPropertyRelative("Name");
+
+ SerializedProperty shaderNames = item.FindPropertyRelative("ShaderOptionNames");
+ SerializedProperty shaderName = item.FindPropertyRelative("ShaderName");
+ SerializedProperty propType = item.FindPropertyRelative("Type");
+
+ InteractableThemePropertyValueTypes type = (InteractableThemePropertyValueTypes)propType.intValue;
+
+ if (type == InteractableThemePropertyValueTypes.AnimatorTrigger)
+ {
+ animatorCount++;
+ }
+
+ bool hasTextComp = false;
+ if (shaderNames.arraySize > 0)
+ {
+ // show shader property dropdown
+ if (idCount < 1)
+ {
+ GUILayout.Space(5);
+ }
+
+ string[] shaderOptionNames = InspectorUIUtility.GetOptions(shaderNames);
+ string propName = shaderOptionNames[propId.intValue];
+ bool hasShaderProperty = true;
+
+ if (gameObject == null)
+ {
+ EditorGUILayout.LabelField(new GUIContent("Shader: " + shaderName.stringValue));
+ }
+ else
+ {
+ GameObject renderHost = gameObject.objectReferenceValue as GameObject;
+ if (renderHost != null)
+ {
+ Renderer renderer = renderHost.GetComponent();
+ TextMesh mesh = renderHost.GetComponent();
+ Text text = renderHost.GetComponent();
+ hasTextComp = text != null || mesh != null;
+ if (renderer != null && !hasTextComp)
+ {
+ ShaderPropertyType[] filter = new ShaderPropertyType[0];
+ switch (type)
+ {
+ case InteractableThemePropertyValueTypes.Color:
+ filter = new ShaderPropertyType[] { ShaderPropertyType.Color };
+ break;
+ case InteractableThemePropertyValueTypes.ShaderFloat:
+ filter = new ShaderPropertyType[] { ShaderPropertyType.Float };
+ break;
+ case InteractableThemePropertyValueTypes.shaderRange:
+ filter = new ShaderPropertyType[] { ShaderPropertyType.Float };
+ break;
+ default:
+ break;
+ }
+
+ ShaderInfo info = GetShaderProperties(renderer, filter);
+
+ if (info.Name != shaderName.stringValue)
+ {
+ hasShaderProperty = false;
+
+ for (int i = 0; i < info.ShaderOptions.Length; i++)
+ {
+ if (info.ShaderOptions[i].Name == propName)
+ {
+ hasShaderProperty = true;
+ break;
+ }
+ }
+ }
+
+ }
+ }
+
+ }
+
+ if (!hasTextComp)
+ {
+ GUIStyle popupStyle = new GUIStyle(EditorStyles.popup);
+ popupStyle.margin.right = Mathf.RoundToInt(Screen.width * 0.25f);
+ propId.intValue = EditorGUILayout.Popup("Material " + name.stringValue + "Id", propId.intValue, shaderOptionNames, popupStyle);
+ idCount++;
+
+ if (!hasShaderProperty)
+ {
+ InspectorUIUtility.DrawError(propName + " is not available on the currently assigned Material.");
+ }
+ }
+ else
+ {
+ EditorGUILayout.LabelField(new GUIContent("Text Property: " + (InteractableThemePropertyValueTypes)propId.intValue));
+ }
+
+ // Handle isse where the material color id renders on objects it shouldn't!!!!!!!!!!!!!!
+ // theme is save for a game object with a renderer, but when put on a textmesh, rendering prop values show up.
+ // when changing the theme type on a TextMesh, everything works, but the rendering prop is removed from the theme on the renderer object.
+ // make this passive, only show up when needed.
+ }
+ }
+
+ EditorGUI.indentLevel = indentOnSectionStart;
+ GUILayout.Space(5);
+
+ if (animatorCount < sProps.arraySize)
+ {
+ // show theme properties
+ SerializedProperty easing = settingsItem.FindPropertyRelative("Easing");
+ SerializedProperty enabled = easing.FindPropertyRelative("Enabled");
+
+ SerializedProperty noEasing = settingsItem.FindPropertyRelative("NoEasing");
+ if (!noEasing.boolValue)
+ {
+ InspectorUIUtility.DrawDivider();
+ enabled.boolValue = EditorGUILayout.Toggle(new GUIContent("Easing", "should the theme animate state values"), enabled.boolValue);
+
+ if (enabled.boolValue)
+ {
+ EditorGUI.indentLevel = indentOnSectionStart + 1;
+ SerializedProperty time = easing.FindPropertyRelative("LerpTime");
+ SerializedProperty curve = easing.FindPropertyRelative("Curve");
+
+ time.floatValue = EditorGUILayout.FloatField(new GUIContent("Duration", "animation duration"), time.floatValue);
+ EditorGUILayout.PropertyField(curve, new GUIContent("Animation Curve"));
+
+ EditorGUI.indentLevel = indentOnSectionStart;
+ }
+ }
+ else
+ {
+ enabled.boolValue = false;
+ }
+ }
+
+ // check to see if an animatorControll exists
+ if (animatorCount > 0 && gameObject != null)
+ {
+ GameObject host = gameObject.objectReferenceValue as GameObject;
+ Animator animator = host?.GetComponent();
+
+ if (animator == null && host != null)
+ {
+ SerializedProperty targetInfo = settingsItem.FindPropertyRelative("ThemeTarget");
+ SerializedProperty targetStates = targetInfo.FindPropertyRelative("States");
+ targetStates = GetSerializedStates(targetStates, states);
+
+#pragma warning disable 0219 // disable value is never used warning
+ //assigning values to be passed to the FlexButton
+ SerializedProperty target = targetInfo.FindPropertyRelative("Target");
+ SerializedProperty props = targetInfo.FindPropertyRelative("Properties");
+ target = gameObject;
+ props = sProps;
+#pragma warning restore 0219 // enable value is never used warning
+
+ InspectorUIUtility.FlexButton(new GUIContent("Create Animations", "Create and add an Animator with AnimationClips"), listIndex, AddAnimator, targetInfo);
+ }
+ }
+
+ EditorGUILayout.EndVertical();
+ }
+ }
+
+ public static SerializedProperty GetSerializedStates(SerializedProperty serialized, State[] states)
+ {
+ serialized.ClearArray();
+ for (int i = 0; i < states.Length; i++)
+ {
+ serialized.InsertArrayElementAtIndex(serialized.arraySize);
+ SerializedProperty state = serialized.GetArrayElementAtIndex(serialized.arraySize - 1);
+ SerializedProperty activeIndex = state.FindPropertyRelative("ActiveIndex");
+ SerializedProperty bit = state.FindPropertyRelative("Bit");
+ SerializedProperty index = state.FindPropertyRelative("Index");
+ SerializedProperty name = state.FindPropertyRelative("Name");
+ SerializedProperty value = state.FindPropertyRelative("Value");
+
+ activeIndex.intValue = states[i].ActiveIndex;
+ bit.intValue = states[i].Bit;
+ index.intValue = states[i].Index;
+ name.stringValue = states[i].Name;
+ value.intValue = states[i].Value;
+
+ }
+
+ return serialized;
+ }
+
+ public static void RenderThemeStates(SerializedProperty settings, State[] states, int margin)
+ {
+ GUIStyle box = InspectorUIUtility.Box(margin);
+
+ EditorGUILayout.BeginVertical(box);
+ for (int n = 0; n < states.Length; n++)
+ {
+ InspectorUIUtility.DrawLabel(states[n].Name, 12, InspectorUIUtility.ColorTint50);
+
+ EditorGUI.indentLevel = indentOnSectionStart + 1;
+
+ for (int j = 0; j < settings.arraySize; j++)
+ {
+ SerializedProperty settingsItem = settings.GetArrayElementAtIndex(j);
+
+ SerializedProperty properties = settingsItem.FindPropertyRelative("Properties");
+
+ for (int i = 0; i < properties.arraySize; i++)
+ {
+ SerializedProperty propertyItem = properties.GetArrayElementAtIndex(i);
+ SerializedProperty name = propertyItem.FindPropertyRelative("Name");
+ SerializedProperty type = propertyItem.FindPropertyRelative("Type");
+ SerializedProperty values = propertyItem.FindPropertyRelative("Values");
+ SerializedProperty shaderNames = propertyItem.FindPropertyRelative("ShaderOptionNames");
+ SerializedProperty propId = propertyItem.FindPropertyRelative("PropId");
+
+ string shaderPropName = "Shader";
+
+ if (shaderNames.arraySize > propId.intValue)
+ {
+ SerializedProperty propName = shaderNames.GetArrayElementAtIndex(propId.intValue);
+ shaderPropName = propName.stringValue;
+ }
+
+ if (n >= values.arraySize)
+ {
+ // the state values for this theme were not created yet
+ continue;
+ }
+
+ SerializedProperty item = values.GetArrayElementAtIndex(n);
+ SerializedProperty floatValue = item.FindPropertyRelative("Float");
+ SerializedProperty vector2Value = item.FindPropertyRelative("Vector2");
+ SerializedProperty stringValue = item.FindPropertyRelative("String");
+
+ switch ((InteractableThemePropertyValueTypes)type.intValue)
+ {
+ case InteractableThemePropertyValueTypes.Float:
+ floatValue.floatValue = EditorGUILayout.FloatField(new GUIContent(name.stringValue, ""), floatValue.floatValue);
+ break;
+ case InteractableThemePropertyValueTypes.Int:
+ SerializedProperty intValue = item.FindPropertyRelative("Int");
+ intValue.intValue = EditorGUILayout.IntField(new GUIContent(name.stringValue, ""), intValue.intValue);
+ break;
+ case InteractableThemePropertyValueTypes.Color:
+ SerializedProperty colorValue = item.FindPropertyRelative("Color");
+ colorValue.colorValue = EditorGUILayout.ColorField(new GUIContent(name.stringValue, ""), colorValue.colorValue);
+ break;
+ case InteractableThemePropertyValueTypes.ShaderFloat:
+ floatValue.floatValue = EditorGUILayout.FloatField(new GUIContent(name.stringValue, ""), floatValue.floatValue);
+ break;
+ case InteractableThemePropertyValueTypes.shaderRange:
+ vector2Value.vector2Value = EditorGUILayout.Vector2Field(new GUIContent(name.stringValue, ""), vector2Value.vector2Value);
+ break;
+ case InteractableThemePropertyValueTypes.Vector2:
+ vector2Value.vector2Value = EditorGUILayout.Vector2Field(new GUIContent(name.stringValue, ""), vector2Value.vector2Value);
+ break;
+ case InteractableThemePropertyValueTypes.Vector3:
+ SerializedProperty vector3Value = item.FindPropertyRelative("Vector3");
+ vector3Value.vector3Value = EditorGUILayout.Vector3Field(new GUIContent(name.stringValue, ""), vector3Value.vector3Value);
+ break;
+ case InteractableThemePropertyValueTypes.Vector4:
+ SerializedProperty vector4Value = item.FindPropertyRelative("Vector4");
+ vector4Value.vector4Value = EditorGUILayout.Vector4Field(new GUIContent(name.stringValue, ""), vector4Value.vector4Value);
+ break;
+ case InteractableThemePropertyValueTypes.Quaternion:
+ SerializedProperty quaternionValue = item.FindPropertyRelative("Quaternion");
+ Vector4 vect4 = new Vector4(quaternionValue.quaternionValue.x, quaternionValue.quaternionValue.y, quaternionValue.quaternionValue.z, quaternionValue.quaternionValue.w);
+ vect4 = EditorGUILayout.Vector4Field(new GUIContent(name.stringValue, ""), vect4);
+ quaternionValue.quaternionValue = new Quaternion(vect4.x, vect4.y, vect4.z, vect4.w);
+ break;
+ case InteractableThemePropertyValueTypes.Texture:
+ SerializedProperty texture = item.FindPropertyRelative("Texture");
+ EditorGUILayout.PropertyField(texture, new GUIContent(name.stringValue, ""), false);
+ break;
+ case InteractableThemePropertyValueTypes.Material:
+ SerializedProperty material = item.FindPropertyRelative("Material");
+ EditorGUILayout.PropertyField(material, new GUIContent(name.stringValue, ""), false);
+ break;
+ case InteractableThemePropertyValueTypes.AudioClip:
+ SerializedProperty audio = item.FindPropertyRelative("AudioClip");
+ EditorGUILayout.PropertyField(audio, new GUIContent(name.stringValue, ""), false);
+ break;
+ case InteractableThemePropertyValueTypes.Animaiton:
+ SerializedProperty animation = item.FindPropertyRelative("Animation");
+ EditorGUILayout.PropertyField(animation, new GUIContent(name.stringValue, ""), false);
+ break;
+ case InteractableThemePropertyValueTypes.GameObject:
+ SerializedProperty gameObjectValue = item.FindPropertyRelative("GameObject");
+ EditorGUILayout.PropertyField(gameObjectValue, new GUIContent(name.stringValue, ""), false);
+ break;
+ case InteractableThemePropertyValueTypes.String:
+ stringValue.stringValue = EditorGUILayout.TextField(new GUIContent(name.stringValue, ""), stringValue.stringValue);
+ break;
+ case InteractableThemePropertyValueTypes.Bool:
+ SerializedProperty boolValue = item.FindPropertyRelative("Bool");
+ boolValue.boolValue = EditorGUILayout.Toggle(new GUIContent(name.stringValue, ""), boolValue.boolValue);
+ break;
+ case InteractableThemePropertyValueTypes.AnimatorTrigger:
+ stringValue.stringValue = EditorGUILayout.TextField(new GUIContent(name.stringValue, ""), stringValue.stringValue);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ EditorGUI.indentLevel = indentOnSectionStart;
+ }
+ GUILayout.Space(5);
+
+ EditorGUILayout.EndVertical();
+ GUILayout.Space(5);
+ }
+
+ public static void AddAnimator(int[] arr, SerializedProperty prop = null)
+ {
+ SerializedProperty target = prop.FindPropertyRelative("Target");
+ SerializedProperty targetStates = prop.FindPropertyRelative("States");
+
+ GameObject host = target.objectReferenceValue as GameObject;
+ string path = "Assets/Animations";
+
+ if (host != null)
+ {
+ string controllerName = host.name + "Controller.controller";
+
+ path = EditorUtility.SaveFilePanelInProject(
+ "Save Animator Controller",
+ controllerName,
+ "controller",
+ "Create a name and select a location for the new Animator Controller");
+
+ if (path.Length != 0)
+ {
+ // we have a location
+ UnityEditor.Animations.AnimatorController controller = UnityEditor.Animations.AnimatorController.CreateAnimatorControllerAtPath(path);
+ AnimatorStateMachine stateMachine = controller.layers[0].stateMachine;
+
+ for (int i = 0; i < targetStates.arraySize; i++)
+ {
+ string name = targetStates.GetArrayElementAtIndex(i).stringValue;
+
+ controller.AddParameter(name, AnimatorControllerParameterType.Trigger);
+ AnimationClip clip = AnimatorController.AllocateAnimatorClip(name);
+
+ AnimationClipSettings settings = AnimationUtility.GetAnimationClipSettings(clip);
+ settings.loopTime = false;
+ AnimationUtility.SetAnimationClipSettings(clip, settings);
+
+ AssetDatabase.AddObjectToAsset(clip, controller);
+ AnimatorState newState = controller.AddMotion(clip);
+
+ //AnimatorState newState = stateMachine.AddState(name);
+ AnimatorStateTransition transition = stateMachine.AddAnyStateTransition(newState);
+ transition.AddCondition(AnimatorConditionMode.If, 0, name);
+ transition.duration = 1;
+ }
+
+ Animator animator = host.AddComponent();
+ animator.runtimeAnimatorController = controller;
+
+ }
+ }
+ }
+
+ public static ShaderInfo GetShaderProperties(Renderer renderer, ShaderPropertyType[] filter)
+ {
+ ShaderInfo info = new ShaderInfo();
+ List properties = new List();
+ Material material = null;
+
+ if (renderer != null)
+ {
+ material = InteractableThemeShaderUtils.GetValidMaterial(renderer);
+ }
+ else
+ {
+ material = new Material(Shader.Find("MixedRealityToolkit/Standard"));
+ }
+
+ if (material != null)
+ {
+ info.Name = material.shader.name;
+ int count = ShaderUtil.GetPropertyCount(material.shader);
+
+ for (int i = 0; i < count; i++)
+ {
+ string name = ShaderUtil.GetPropertyName(material.shader, i);
+ ShaderPropertyType type = ShaderUtilConvert(ShaderUtil.GetPropertyType(material.shader, i));
+ bool isHidden = ShaderUtil.IsShaderPropertyHidden(material.shader, i);
+ Vector2 range = new Vector2(ShaderUtil.GetRangeLimits(material.shader, i, 1), ShaderUtil.GetRangeLimits(material.shader, i, 2));
+
+ if (!isHidden && HasShaderPropertyType(filter, type))
+ {
+ properties.Add(new ShaderProperties() { Name = name, Type = type, Range = range });
+ }
+ }
+ }
+
+ info.ShaderOptions = properties.ToArray();
+ return info;
+ }
+
+ public static ShaderPropertyType ShaderUtilConvert(ShaderUtil.ShaderPropertyType type)
+ {
+ ShaderPropertyType shaderType;
+ switch (type)
+ {
+ case ShaderUtil.ShaderPropertyType.Color:
+ shaderType = ShaderPropertyType.Color;
+ break;
+ case ShaderUtil.ShaderPropertyType.Vector:
+ shaderType = ShaderPropertyType.Vector;
+ break;
+ case ShaderUtil.ShaderPropertyType.Float:
+ shaderType = ShaderPropertyType.Float;
+ break;
+ case ShaderUtil.ShaderPropertyType.Range:
+ shaderType = ShaderPropertyType.Range;
+ break;
+ case ShaderUtil.ShaderPropertyType.TexEnv:
+ shaderType = ShaderPropertyType.TexEnv;
+ break;
+ default:
+ shaderType = ShaderPropertyType.None;
+ break;
+ }
+ return shaderType;
+ }
+
+ public static bool HasShaderPropertyType(ShaderPropertyType[] filter, ShaderPropertyType type)
+ {
+ for (int i = 0; i < filter.Length; i++)
+ {
+ if (filter[i] == type)
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+#endif
+}
diff --git a/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ThemeInspector.cs.meta b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ThemeInspector.cs.meta
new file mode 100644
index 00000000000..32f6fbf56e7
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/Inspectors/UX/Interactable/ThemeInspector.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 230db4b73e2623d45831fd131ea14dc2
+timeCreated: 1522252366
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit.SDK/StandardAssets/Materials/MRTK_Standard_DarkBrown.mat b/Assets/MixedRealityToolkit.SDK/StandardAssets/Materials/MRTK_Standard_DarkBrown.mat
new file mode 100644
index 00000000000..0ec608faf15
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/StandardAssets/Materials/MRTK_Standard_DarkBrown.mat
@@ -0,0 +1,144 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: MRTK_Standard_DarkBrown
+ m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _DISABLE_ALBEDO_MAP
+ _LIGHTMAPPING_REALTIME _SPECULAR_HIGHLIGHTS
+ m_LightmapFlags: 1
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ 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}
+ - _NormalMap:
+ 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:
+ - _AlbedoAlphaMode: 0
+ - _BlendOp: 0
+ - _BorderLight: 0
+ - _BorderLightOpaque: 0
+ - _BorderLightUsesHoverColor: 1
+ - _BorderMinValue: 0.1
+ - _BorderWidth: 0.1
+ - _BumpScale: 1
+ - _ClippingPlane: 0
+ - _ClippingPlaneBorder: 0
+ - _ClippingPlaneBorderWidth: 0.025
+ - _ColorWriteMask: 15
+ - _CullMode: 2
+ - _CustomMode: 0
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DirectionalLight: 1
+ - _DstBlend: 0
+ - _EdgeSmoothingValue: 0.002
+ - _EmissionScaleUI: 0
+ - _EnableChannelMap: 0
+ - _EnableEmission: 0
+ - _EnableHoverColorOpaqueOverride: 0
+ - _EnableHoverColorOverride: 0
+ - _EnableNormalMap: 0
+ - _EnvironmentColorIntensity: 0.5
+ - _EnvironmentColorThreshold: 1.5
+ - _EnvironmentColoring: 0
+ - _FadeBeginDistance: 0.85
+ - _FadeCompleteDistance: 0.5
+ - _GlossMapScale: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _HoverLight: 0
+ - _HoverLightOpaque: 0
+ - _InnerGlow: 0
+ - _InstancedColor: 0
+ - _Lightmapping: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _NearPlaneFade: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _Reflections: 0
+ - _Refraction: 0
+ - _RefractiveIndex: 1.1
+ - _RenderQueueOverride: -1
+ - _RimLight: 0
+ - _RimPower: 0.25
+ - _RoundCornerMargin: 0
+ - _RoundCornerRadius: 0.25
+ - _RoundCorners: 0
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComparison: 0
+ - _StencilOperation: 0
+ - _StencilReference: 0
+ - _UVSec: 0
+ - _ZTest: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _ClipPlane: {r: 0, g: 1, b: 0, a: 0}
+ - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
+ - _Color: {r: 0.21698111, g: 0.11120721, b: 0.037869345, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+ - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
+ - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
+ - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
+ - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1}
+ - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
+ - _RimColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
diff --git a/Assets/MixedRealityToolkit.SDK/StandardAssets/Materials/MRTK_Standard_DarkBrown.mat.meta b/Assets/MixedRealityToolkit.SDK/StandardAssets/Materials/MRTK_Standard_DarkBrown.mat.meta
new file mode 100644
index 00000000000..4b5e0594493
--- /dev/null
+++ b/Assets/MixedRealityToolkit.SDK/StandardAssets/Materials/MRTK_Standard_DarkBrown.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a7448698c15706f48905e44d8e76f2b5
+timeCreated: 1435687483
+licenseType: Pro
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit/Inspectors/Text3DShaderGUI.cs b/Assets/MixedRealityToolkit/Inspectors/Text3DShaderGUI.cs
new file mode 100644
index 00000000000..67c2fdb061b
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Inspectors/Text3DShaderGUI.cs
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+using System;
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.Rendering;
+using Object = UnityEngine.Object;
+
+namespace Microsoft.MixedReality.Toolkit.Core.Inspectors
+{
+ ///
+ /// A custom shader inspector for the "Mixed Reality Toolkit/TextShader3D".
+ ///
+ public class Text3DShaderGUI : ShaderGUI
+ {
+ protected bool firstTimeApply = true;
+ protected MaterialProperty cullMode;
+
+
+ public override void OnGUI(MaterialEditor matEditor, MaterialProperty[] props)
+ {
+ // Make sure that needed setup (ie keywords/renderqueue) are set up if we're switching from an existing material.
+ // Do this before any GUI code has been issued to prevent layout issues in subsequent GUILayout statements (case 780071)
+ if (firstTimeApply)
+ {
+ firstTimeApply = false;
+ }
+
+ EditorGUIUtility.labelWidth = 0f;
+
+ EditorGUI.BeginChangeCheck();
+ {
+ base.OnGUI(matEditor, props);
+ }
+ }
+
+ protected static class Styles
+ {
+ public static GUIContent cullMode = new GUIContent("Culling Mode", "Type of culling to apply to polygons - typically this is set to backfacing");
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit/Inspectors/Text3DShaderGUI.cs.meta b/Assets/MixedRealityToolkit/Inspectors/Text3DShaderGUI.cs.meta
new file mode 100644
index 00000000000..25cd856c940
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Inspectors/Text3DShaderGUI.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a439923e28966fe4db05edd83ab80656
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {fileID: 2800000, guid: 961230b29c294bb780054c5d02eb6180, type: 3}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorFieldsUtility.cs b/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorFieldsUtility.cs
new file mode 100644
index 00000000000..824d97fefc1
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorFieldsUtility.cs
@@ -0,0 +1,264 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using UnityEditor;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.Core.Inspectors.Utilities
+{
+ ///
+ /// A colleciton of helper functions for adding InspectorFields to a custom Inspector
+ ///
+
+ public static class InspectorFieldsUtility
+ {
+ ///
+ /// Create a new list of serialized PropertySettings from InspectorFields
+ ///
+ ///
+ ///
+ public static void PropertySettingsList(SerializedProperty settings, List data)
+ {
+ settings.ClearArray();
+
+ for (int i = 0; i < data.Count; i++)
+ {
+ settings.InsertArrayElementAtIndex(settings.arraySize);
+ SerializedProperty settingItem = settings.GetArrayElementAtIndex(settings.arraySize - 1);
+
+ UpdatePropertySettings(settingItem, (int)data[i].Attributes.Type, data[i].Value);
+
+ SerializedProperty type = settingItem.FindPropertyRelative("Type");
+ SerializedProperty tooltip = settingItem.FindPropertyRelative("Tooltip");
+ SerializedProperty label = settingItem.FindPropertyRelative("Label");
+ SerializedProperty options = settingItem.FindPropertyRelative("Options");
+ SerializedProperty name = settingItem.FindPropertyRelative("Name");
+
+ type.enumValueIndex = (int)data[i].Attributes.Type;
+ tooltip.stringValue = data[i].Attributes.Tooltip;
+ label.stringValue = data[i].Attributes.Label;
+ name.stringValue = data[i].Name;
+
+ options.ClearArray();
+
+ if (data[i].Attributes.Options != null)
+ {
+ for (int j = 0; j < data[i].Attributes.Options.Length; j++)
+ {
+ options.InsertArrayElementAtIndex(j);
+ SerializedProperty item = options.GetArrayElementAtIndex(j);
+ item.stringValue = data[i].Attributes.Options[j];
+ }
+ }
+ }
+ }
+
+ ///
+ /// Update a property value in a serialized PropertySettings
+ ///
+ ///
+ ///
+ ///
+ public static void UpdatePropertySettings(SerializedProperty prop, int type, object update)
+ {
+ SerializedProperty intValue = prop.FindPropertyRelative("IntValue");
+ SerializedProperty stringValue = prop.FindPropertyRelative("StringValue");
+
+ switch ((InspectorField.FieldTypes)type)
+ {
+ case InspectorField.FieldTypes.Float:
+ SerializedProperty floatValue = prop.FindPropertyRelative("FloatValue");
+ floatValue.floatValue = (float)update;
+ break;
+ case InspectorField.FieldTypes.Int:
+ intValue.intValue = (int)update;
+ break;
+ case InspectorField.FieldTypes.String:
+
+ stringValue.stringValue = (string)update;
+ break;
+ case InspectorField.FieldTypes.Bool:
+ SerializedProperty boolValue = prop.FindPropertyRelative("BoolValue");
+ boolValue.boolValue = (bool)update;
+ break;
+ case InspectorField.FieldTypes.Color:
+ SerializedProperty colorValue = prop.FindPropertyRelative("ColorValue");
+ colorValue.colorValue = (Color)update;
+ break;
+ case InspectorField.FieldTypes.DropdownInt:
+ intValue.intValue = (int)update;
+ break;
+ case InspectorField.FieldTypes.DropdownString:
+ stringValue.stringValue = (string)update;
+ break;
+ case InspectorField.FieldTypes.GameObject:
+ SerializedProperty gameObjectValue = prop.FindPropertyRelative("GameObjectValue");
+ gameObjectValue.objectReferenceValue = (GameObject)update;
+ break;
+ case InspectorField.FieldTypes.ScriptableObject:
+ SerializedProperty scriptableObjectValue = prop.FindPropertyRelative("ScriptableObjectValue");
+ scriptableObjectValue.objectReferenceValue = (ScriptableObject)update;
+ break;
+ case InspectorField.FieldTypes.Object:
+ SerializedProperty objectValue = prop.FindPropertyRelative("ObjectValue");
+ objectValue.objectReferenceValue = (UnityEngine.Object)update;
+ break;
+ case InspectorField.FieldTypes.Material:
+ SerializedProperty materialValue = prop.FindPropertyRelative("MaterialValue");
+ materialValue.objectReferenceValue = (Material)update;
+ break;
+ case InspectorField.FieldTypes.Texture:
+ SerializedProperty textureValue = prop.FindPropertyRelative("TextureValue");
+ textureValue.objectReferenceValue = (Texture)update;
+ break;
+ case InspectorField.FieldTypes.Vector2:
+ SerializedProperty vector2Value = prop.FindPropertyRelative("Vector2Value");
+ vector2Value.vector2Value = (Vector2)update;
+ break;
+ case InspectorField.FieldTypes.Vector3:
+ SerializedProperty vector3Value = prop.FindPropertyRelative("Vector3Value");
+ vector3Value.vector3Value = (Vector3)update;
+ break;
+ case InspectorField.FieldTypes.Vector4:
+ SerializedProperty vector4Value = prop.FindPropertyRelative("Vector4Value");
+ vector4Value.vector4Value = (Vector4)update;
+ break;
+ case InspectorField.FieldTypes.Curve:
+ SerializedProperty curveValue = prop.FindPropertyRelative("CurveValue");
+ curveValue.animationCurveValue = (AnimationCurve)update;
+ break;
+ case InspectorField.FieldTypes.Quaternion:
+ SerializedProperty quaternionValue = prop.FindPropertyRelative("QuaternionValue");
+ quaternionValue.quaternionValue = (Quaternion)update;
+ break;
+ case InspectorField.FieldTypes.AudioClip:
+ SerializedProperty audioClip = prop.FindPropertyRelative("AudioClipValue");
+ audioClip.objectReferenceValue = (AudioClip)update;
+ break;
+ case InspectorField.FieldTypes.Event:
+ // read only, do not update here or a new instance of the event will be created
+ break;
+ default:
+ break;
+ }
+ }
+
+ ///
+ /// Checks the type a property field and returns if it matches the passed in type
+ ///
+ ///
+ ///
+ ///
+ public static bool IsPropertyType(SerializedProperty prop, InspectorField.FieldTypes type)
+ {
+ SerializedProperty propType = prop.FindPropertyRelative("Type");
+ return (InspectorField.FieldTypes)propType.intValue == type;
+ }
+
+ ///
+ /// Render a PropertySettings UI field based on the InspectorField Settings
+ ///
+ ///
+ public static void DisplayPropertyField(SerializedProperty prop)
+ {
+ SerializedProperty type = prop.FindPropertyRelative("Type");
+ SerializedProperty label = prop.FindPropertyRelative("Label");
+ SerializedProperty tooltip = prop.FindPropertyRelative("Tooltip");
+ SerializedProperty options = prop.FindPropertyRelative("Options");
+
+ SerializedProperty intValue = prop.FindPropertyRelative("IntValue");
+ SerializedProperty stringValue = prop.FindPropertyRelative("StringValue");
+ switch ((InspectorField.FieldTypes)type.intValue)
+ {
+ case InspectorField.FieldTypes.Float:
+ SerializedProperty floatValue = prop.FindPropertyRelative("FloatValue");
+ floatValue.floatValue = EditorGUILayout.FloatField(new GUIContent(label.stringValue, tooltip.stringValue), floatValue.floatValue);
+ break;
+ case InspectorField.FieldTypes.Int:
+ intValue.intValue = EditorGUILayout.IntField(new GUIContent(label.stringValue, tooltip.stringValue), intValue.intValue);
+ break;
+ case InspectorField.FieldTypes.String:
+ stringValue.stringValue = EditorGUILayout.TextField(new GUIContent(label.stringValue, tooltip.stringValue), stringValue.stringValue);
+ break;
+ case InspectorField.FieldTypes.Bool:
+ SerializedProperty boolValue = prop.FindPropertyRelative("BoolValue");
+ boolValue.boolValue = EditorGUILayout.Toggle(new GUIContent(label.stringValue, tooltip.stringValue), boolValue.boolValue);
+ break;
+ case InspectorField.FieldTypes.Color:
+ SerializedProperty colorValue = prop.FindPropertyRelative("ColorValue");
+ colorValue.colorValue = EditorGUILayout.ColorField(new GUIContent(label.stringValue, tooltip.stringValue), colorValue.colorValue);
+ break;
+ case InspectorField.FieldTypes.DropdownInt:
+ intValue.intValue = EditorGUILayout.Popup(label.stringValue, intValue.intValue, InspectorUIUtility.GetOptions(options));
+ break;
+ case InspectorField.FieldTypes.DropdownString:
+ string[] stringOptions = InspectorUIUtility.GetOptions(options);
+ int selection = InspectorUIUtility.GetOptionsIndex(options, stringValue.stringValue);
+ int newIndex = EditorGUILayout.Popup(label.stringValue, selection, stringOptions);
+ if (selection != newIndex)
+ {
+ stringValue.stringValue = stringOptions[newIndex];
+ intValue.intValue = newIndex;
+ }
+ break;
+ case InspectorField.FieldTypes.GameObject:
+ SerializedProperty gameObjectValue = prop.FindPropertyRelative("GameObjectValue");
+ EditorGUILayout.PropertyField(gameObjectValue, new GUIContent(label.stringValue, tooltip.stringValue), false);
+ break;
+ case InspectorField.FieldTypes.ScriptableObject:
+ SerializedProperty scriptableObjectValue = prop.FindPropertyRelative("ScriptableObjectValue");
+ EditorGUILayout.PropertyField(scriptableObjectValue, new GUIContent(label.stringValue, tooltip.stringValue), false);
+ break;
+ case InspectorField.FieldTypes.Object:
+ SerializedProperty objectValue = prop.FindPropertyRelative("ObjectValue");
+ EditorGUILayout.PropertyField(objectValue, new GUIContent(label.stringValue, tooltip.stringValue), true);
+ break;
+ case InspectorField.FieldTypes.Material:
+ SerializedProperty materialValue = prop.FindPropertyRelative("MaterialValue");
+ EditorGUILayout.PropertyField(materialValue, new GUIContent(label.stringValue, tooltip.stringValue), false);
+ break;
+ case InspectorField.FieldTypes.Texture:
+ SerializedProperty textureValue = prop.FindPropertyRelative("TextureValue");
+ EditorGUILayout.PropertyField(textureValue, new GUIContent(label.stringValue, tooltip.stringValue), false);
+ break;
+ case InspectorField.FieldTypes.Vector2:
+ SerializedProperty vector2Value = prop.FindPropertyRelative("Vector2Value");
+ vector2Value.vector2Value = EditorGUILayout.Vector2Field(new GUIContent(label.stringValue, tooltip.stringValue), vector2Value.vector2Value);
+ break;
+ case InspectorField.FieldTypes.Vector3:
+ SerializedProperty vector3Value = prop.FindPropertyRelative("Vector3Value");
+ vector3Value.vector3Value = EditorGUILayout.Vector3Field(new GUIContent(label.stringValue, tooltip.stringValue), vector3Value.vector3Value);
+ break;
+ case InspectorField.FieldTypes.Vector4:
+ SerializedProperty vector4Value = prop.FindPropertyRelative("Vector4Value");
+ vector4Value.vector4Value = EditorGUILayout.Vector4Field(new GUIContent(label.stringValue, tooltip.stringValue), vector4Value.vector4Value);
+ break;
+ case InspectorField.FieldTypes.Curve:
+ SerializedProperty curveValue = prop.FindPropertyRelative("CurveValue");
+ curveValue.animationCurveValue = EditorGUILayout.CurveField(new GUIContent(label.stringValue, tooltip.stringValue), curveValue.animationCurveValue);
+ break;
+ case InspectorField.FieldTypes.Quaternion:
+ SerializedProperty quaternionValue = prop.FindPropertyRelative("QuaternionValue");
+ Vector4 vect4 = new Vector4(quaternionValue.quaternionValue.x, quaternionValue.quaternionValue.y, quaternionValue.quaternionValue.z, quaternionValue.quaternionValue.w);
+ vect4 = EditorGUILayout.Vector4Field(new GUIContent(label.stringValue, tooltip.stringValue), vect4);
+ quaternionValue.quaternionValue = new Quaternion(vect4.x, vect4.y, vect4.z, vect4.w);
+ break;
+ case InspectorField.FieldTypes.AudioClip:
+ SerializedProperty audioClip = prop.FindPropertyRelative("AudioClipValue");
+ EditorGUILayout.PropertyField(audioClip, new GUIContent(label.stringValue, tooltip.stringValue), false);
+ break;
+ case InspectorField.FieldTypes.Event:
+ SerializedProperty uEvent = prop.FindPropertyRelative("EventValue");
+ EditorGUILayout.PropertyField(uEvent, new GUIContent(label.stringValue, tooltip.stringValue));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorFieldsUtility.cs.meta b/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorFieldsUtility.cs.meta
new file mode 100644
index 00000000000..bcb8e2ba8f2
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorFieldsUtility.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3185493363fa80347a2ec0f9fa8907db
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorUIUtility.cs b/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorUIUtility.cs
new file mode 100644
index 00000000000..de313b3ef1d
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorUIUtility.cs
@@ -0,0 +1,481 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+namespace Microsoft.MixedReality.Toolkit.Core.Inspectors.Utilities
+{
+ ///
+ /// This class has handy inspector UI utilities and functions.
+ ///
+ public static class InspectorUIUtility
+ {
+ //Colors
+ public readonly static Color ColorTint100 = new Color(1f, 1f, 1f);
+ public readonly static Color ColorTint75 = new Color(0.75f, 0.75f, 0.75f);
+ public readonly static Color ColorTint50 = new Color(0.5f, 0.5f, 0.5f);
+ public readonly static Color ColorTint25 = new Color(0.25f, 0.25f, 0.25f);
+
+ // default text sizes
+ public const int TitleFontSize = 14;
+ public const int DefaultFontSize = 10;
+
+ // special characters
+ public readonly static string Minus = "\u2212";
+ public readonly static string Plus = "\u002B";
+ public readonly static string Astrisk = "\u2217";
+ public readonly static string Left = "\u02C2";
+ public readonly static string Right = "\u02C3";
+ public readonly static string Up = "\u02C4";
+ public readonly static string Down = "\u02C5";
+ public readonly static string Close = "\u2715";
+ public readonly static string Heart = "\u2661";
+ public readonly static string Star = "\u2606";
+ public readonly static string Emoji = "\u263A";
+
+ ///
+ /// A data container for managing scrolling lists or nested drawers in custom inspectors.
+ ///
+ public struct ListSettings
+ {
+ public bool Show;
+ public Vector2 Scroll;
+ }
+
+ ///
+ /// Delegate for button callbacks, single index
+ ///
+ /// location of item in a serialized array
+ /// A serialize property containing information needed if the button was clicked
+ public delegate void ListButtonEvent(int index, SerializedProperty prop = null);
+
+ ///
+ /// Delegate for button callbacks, multi-index for nested arrays
+ ///
+ /// location of item in a serialized array
+ /// A serialize property containing information needed if the button was clicked
+ public delegate void MultiListButtonEvent(int[] indexArray, SerializedProperty prop = null);
+
+ ///
+ /// Box style with left margin
+ ///
+ ///
+ ///
+ public static GUIStyle Box(int margin)
+ {
+ GUIStyle box = new GUIStyle(GUI.skin.box);
+ box.margin.left = margin;
+ return box;
+ }
+
+ ///
+ /// Create a custom label style based on color and size
+ ///
+ ///
+ ///
+ ///
+ public static GUIStyle LableStyle(int size, Color color)
+ {
+ GUIStyle labelStyle = new GUIStyle(EditorStyles.boldLabel);
+ labelStyle.fontStyle = FontStyle.Bold;
+ labelStyle.fontSize = size;
+ labelStyle.fixedHeight = size * 2;
+ labelStyle.normal.textColor = color;
+ return labelStyle;
+ }
+
+ ///
+ /// A button that is as wide as the label
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool FlexButton(GUIContent label, int index, ListButtonEvent callback, SerializedProperty prop = null)
+ {
+ // delete button
+ GUIStyle buttonStyle = new GUIStyle(GUI.skin.button);
+
+ float buttonWidth = GUI.skin.button.CalcSize(label).x;
+
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.FlexibleSpace();
+
+ bool triggered = false;
+ if (GUILayout.Button(label, buttonStyle, GUILayout.Width(buttonWidth)))
+ {
+ callback(index, prop);
+ triggered = true;
+ }
+
+ EditorGUILayout.EndHorizontal();
+ return triggered;
+ }
+
+ ///
+ /// A button that is as wide as the label
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool FlexButton(GUIContent label, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null)
+ {
+ // delete button
+ GUIStyle buttonStyle = new GUIStyle(GUI.skin.button);
+
+ float buttonWidth = GUI.skin.button.CalcSize(label).x;
+
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.FlexibleSpace();
+
+ bool triggered = false;
+ if (GUILayout.Button(label, buttonStyle, GUILayout.Width(buttonWidth)))
+ {
+ callback(indexArr, prop);
+ triggered = true;
+ }
+
+ EditorGUILayout.EndHorizontal();
+ return triggered;
+ }
+
+ ///
+ /// A button that is as wide as the available space
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool FullWidthButton(GUIContent label, float padding, int index, ListButtonEvent callback, SerializedProperty prop = null)
+ {
+ GUIStyle addStyle = new GUIStyle(GUI.skin.button);
+ addStyle.fixedHeight = 25;
+ float addButtonWidth = GUI.skin.button.CalcSize(label).x * padding;
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.FlexibleSpace();
+
+ bool triggered = false;
+ if (GUILayout.Button(label, addStyle, GUILayout.Width(addButtonWidth)))
+ {
+ callback(index, prop);
+ triggered = true;
+ }
+
+ GUILayout.FlexibleSpace();
+ EditorGUILayout.EndHorizontal();
+ return triggered;
+ }
+
+ ///
+ /// A button that is as wide as the available space
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool FullWidthButton(GUIContent label, float padding, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null)
+ {
+ GUIStyle addStyle = new GUIStyle(GUI.skin.button);
+ addStyle.fixedHeight = 25;
+ float addButtonWidth = GUI.skin.button.CalcSize(label).x * padding;
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.FlexibleSpace();
+
+ bool triggered = false;
+ if (GUILayout.Button(label, addStyle, GUILayout.Width(addButtonWidth)))
+ {
+ callback(indexArr, prop);
+ triggered = true;
+ }
+
+ GUILayout.FlexibleSpace();
+ EditorGUILayout.EndHorizontal();
+ return triggered;
+ }
+
+ ///
+ /// A small button, good for a single icon like + or -
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool SmallButton(GUIContent label, int index, ListButtonEvent callback, SerializedProperty prop = null)
+ {
+
+ GUIStyle smallButton = new GUIStyle(EditorStyles.miniButton);
+ float smallButtonWidth = GUI.skin.button.CalcSize(new GUIContent(label)).x;
+
+ bool triggered = false;
+ if (GUILayout.Button(label, smallButton, GUILayout.Width(smallButtonWidth)))
+ {
+ callback(index, prop);
+ triggered = true;
+ }
+ return triggered;
+ }
+
+ ///
+ /// A small button, good for a single icon like + or -
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool SmallButton(GUIContent label, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null)
+ {
+ GUIStyle smallButton = new GUIStyle(EditorStyles.miniButton);
+ float smallButtonWidth = GUI.skin.button.CalcSize(label).x;
+
+ bool triggered = false;
+ if (GUILayout.Button(label, smallButton, GUILayout.Width(smallButtonWidth)))
+ {
+ callback(indexArr, prop);
+ triggered = true;
+ }
+ return triggered;
+ }
+
+ ///
+ /// Large title format
+ ///
+ ///
+ public static void DrawTitle(string title)
+ {
+ GUIStyle labelStyle = LableStyle(TitleFontSize, ColorTint50);
+ EditorGUILayout.LabelField(new GUIContent(title), labelStyle);
+ GUILayout.Space(TitleFontSize * 0.5f);
+ }
+
+ ///
+ /// Draw a basic lable
+ ///
+ ///
+ ///
+ ///
+ public static void DrawLabel(string title, int size, Color color)
+ {
+ GUIStyle labelStyle = LableStyle(size, color);
+ EditorGUILayout.LabelField(new GUIContent(title), labelStyle);
+ GUILayout.Space(TitleFontSize * 0.5f);
+ }
+
+ ///
+ /// draw a label with a yellow coloring
+ ///
+ ///
+ public static void DrawWarning(string warning)
+ {
+ Color prevColor = GUI.color;
+
+ GUI.color = MixedRealityInspectorUtility.WarningColor;
+ EditorGUILayout.BeginVertical(EditorStyles.textArea);
+ EditorGUILayout.LabelField(warning, EditorStyles.wordWrappedMiniLabel);
+ EditorGUILayout.EndVertical();
+
+ GUI.color = prevColor;
+ }
+
+ ///
+ /// draw a notice area, normal coloring
+ ///
+ ///
+ public static void DrawNotice(string notice)
+ {
+ Color prevColor = GUI.color;
+
+ GUI.color = ColorTint100;
+ EditorGUILayout.BeginVertical(EditorStyles.textArea);
+ EditorGUILayout.LabelField(notice, EditorStyles.wordWrappedMiniLabel);
+ EditorGUILayout.EndVertical();
+
+ GUI.color = prevColor;
+ }
+
+ ///
+ /// draw a notice with green coloring
+ ///
+ ///
+ public static void DrawSuccess(string notice)
+ {
+ Color prevColor = GUI.color;
+
+ GUI.color = MixedRealityInspectorUtility.SuccessColor;
+ EditorGUILayout.BeginVertical(EditorStyles.textArea);
+ EditorGUILayout.LabelField(notice, EditorStyles.wordWrappedMiniLabel);
+ EditorGUILayout.EndVertical();
+
+ GUI.color = prevColor;
+ }
+
+ ///
+ /// draw a notice with red coloring
+ ///
+ ///
+ public static void DrawError(string error)
+ {
+ Color prevColor = GUI.color;
+
+ GUI.color = MixedRealityInspectorUtility.ErrorColor;
+ EditorGUILayout.BeginVertical(EditorStyles.textArea);
+ EditorGUILayout.LabelField(error, EditorStyles.wordWrappedMiniLabel);
+ EditorGUILayout.EndVertical();
+
+ GUI.color = prevColor;
+ }
+
+ ///
+ /// Create a line across the negative space
+ ///
+ public static void DrawDivider()
+ {
+ GUIStyle styleHR = new GUIStyle(GUI.skin.box);
+ styleHR.stretchWidth = true;
+ styleHR.fixedHeight = 1;
+ styleHR.border = new RectOffset(1, 1, 1, 0);
+ GUILayout.Box("", styleHR);
+ }
+
+ ///
+ /// Draws a section start (initiated by the Header attribute)
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool DrawSectionStart(string headerName, int indent, bool open = true, FontStyle style = FontStyle.Bold, bool toUpper = true, int size = 0)
+ {
+ GUIStyle sectionStyle = new GUIStyle(EditorStyles.foldout);
+ sectionStyle.fontStyle = style;
+ if (size > 0)
+ {
+ sectionStyle.fontSize = size;
+ sectionStyle.fixedHeight = size * 2;
+ }
+ Color tColor = GUI.color;
+ GUI.color = MixedRealityInspectorUtility.SectionColor;
+
+ if (toUpper)
+ {
+ headerName = headerName.ToUpper();
+ }
+
+ bool drawSection = false;
+ drawSection = EditorGUILayout.Foldout(open, headerName, true, sectionStyle);
+ EditorGUILayout.BeginVertical();
+ GUI.color = tColor;
+ EditorGUI.indentLevel = indent;
+
+ return drawSection;
+ }
+
+ ///
+ /// Draws section end (initiated by next Header attribute)
+ ///
+ public static void DrawSectionEnd(int indent)
+ {
+ EditorGUILayout.EndVertical();
+ EditorGUI.indentLevel = indent;
+ }
+
+ ///
+ /// adjust list settings as things change
+ ///
+ ///
+ public static List AdjustListSettings(List listSettings, int count)
+ {
+ if (listSettings == null)
+ {
+ listSettings = new List();
+ }
+
+ int diff = count - listSettings.Count;
+ if (diff > 0)
+ {
+ for (int i = 0; i < diff; i++)
+ {
+ listSettings.Add(new ListSettings() { Show = false, Scroll = new Vector2() });
+ }
+ }
+ else if (diff < 0)
+ {
+ int removeCnt = 0;
+ for (int i = listSettings.Count - 1; i > -1; i--)
+ {
+ if (removeCnt > diff)
+ {
+ listSettings.RemoveAt(i);
+ removeCnt--;
+ }
+ }
+ }
+
+ return listSettings;
+ }
+
+ ///
+ /// Get an array of strings from a serialized list of strings, popup field helper
+ ///
+ ///
+ ///
+ public static string[] GetOptions(SerializedProperty options)
+ {
+ List list = new List();
+ for (int i = 0; i < options.arraySize; i++)
+ {
+ list.Add(options.GetArrayElementAtIndex(i).stringValue);
+ }
+
+ return list.ToArray();
+ }
+
+ ///
+ /// Get the index of a serialized array item based on it's name, popup field helper
+ ///
+ ///
+ ///
+ ///
+ public static int GetOptionsIndex(SerializedProperty options, string selection)
+ {
+ for (int i = 0; i < options.arraySize; i++)
+ {
+ if (options.GetArrayElementAtIndex(i).stringValue == selection)
+ {
+ return i;
+ }
+ }
+
+ return 0;
+ }
+
+ ///
+ /// Get the index of an array item based on it's name, popup field helper
+ ///
+ ///
+ ///
+ ///
+ public static int ReverseLookup(string option, string[] options)
+ {
+ for (int i = 0; i < options.Length; i++)
+ {
+ if (options[i] == option)
+ {
+ return i;
+ }
+ }
+
+ return 0;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorUIUtility.cs.meta b/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorUIUtility.cs.meta
new file mode 100644
index 00000000000..0f5184f7733
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Inspectors/Utilities/InspectorUIUtility.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8ef3c8df76e6d8b44ad3a0fb3c3a7cc3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawik.mat b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawik.mat
similarity index 90%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawik.mat
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawik.mat
index 4811e876598..cb127f828b0 100644
--- a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawik.mat
+++ b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawik.mat
@@ -6,16 +6,15 @@ Material:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
- m_Name: 3DTextSelawik
- m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_Name: Text3DSelawik
+ m_Shader: {fileID: 4800000, guid: 80c006b91733f1a4991c49af89321ecd, type: 3}
m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _HOVER_LIGHT
_SPECULAR_HIGHLIGHTS
m_LightmapFlags: 5
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: 2000
- stringTagMap:
- RenderType: Opaque
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
@@ -24,6 +23,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ 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}
@@ -74,6 +77,7 @@ Material:
- _ClippingPlaneBorderWidth: 0.025
- _ColorMask: 15
- _ColorWriteMask: 15
+ - _Cull: 2
- _CullMode: 2
- _CustomMode: 0
- _Cutoff: 0.5
@@ -81,6 +85,7 @@ Material:
- _DirectionalLight: 1
- _DstBlend: 0
- _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
- _EnableEmission: 0
- _EnableHoverColorOpaqueOverride: 0
- _EnableHoverColorOverride: 0
@@ -94,6 +99,7 @@ Material:
- _HoverLight: 1
- _HoverLightOpaque: 0
- _InnerGlow: 0
+ - _InstancedColor: 0
- _Metallic: 0
- _Mode: 0
- _NearPlaneFade: 0
@@ -113,8 +119,11 @@ Material:
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
+ - _StencilComparison: 0
- _StencilOp: 0
+ - _StencilOperation: 0
- _StencilReadMask: 255
+ - _StencilReference: 0
- _StencilWriteMask: 255
- _UVSec: 0
- _UseUIAlphaClip: 0
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawik.mat.meta b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawik.mat.meta
similarity index 100%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawik.mat.meta
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawik.mat.meta
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikBold.mat b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikBold.mat
similarity index 90%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikBold.mat
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikBold.mat
index faca40e3984..b5c1bca18b7 100644
--- a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikBold.mat
+++ b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikBold.mat
@@ -6,16 +6,15 @@ Material:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
- m_Name: 3DTextSelawikBold
- m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_Name: Text3DSelawikBold
+ m_Shader: {fileID: 4800000, guid: 80c006b91733f1a4991c49af89321ecd, type: 3}
m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _HOVER_LIGHT
_SPECULAR_HIGHLIGHTS
m_LightmapFlags: 5
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: 2000
- stringTagMap:
- RenderType: Opaque
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
@@ -24,6 +23,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ 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}
@@ -74,6 +77,7 @@ Material:
- _ClippingPlaneBorderWidth: 0.025
- _ColorMask: 15
- _ColorWriteMask: 15
+ - _Cull: 2
- _CullMode: 2
- _CustomMode: 0
- _Cutoff: 0.5
@@ -81,6 +85,7 @@ Material:
- _DirectionalLight: 1
- _DstBlend: 0
- _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
- _EnableEmission: 0
- _EnableHoverColorOpaqueOverride: 0
- _EnableHoverColorOverride: 0
@@ -94,6 +99,7 @@ Material:
- _HoverLight: 1
- _HoverLightOpaque: 0
- _InnerGlow: 0
+ - _InstancedColor: 0
- _Metallic: 0
- _Mode: 0
- _NearPlaneFade: 0
@@ -113,8 +119,11 @@ Material:
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
+ - _StencilComparison: 0
- _StencilOp: 0
+ - _StencilOperation: 0
- _StencilReadMask: 255
+ - _StencilReference: 0
- _StencilWriteMask: 255
- _UVSec: 0
- _UseUIAlphaClip: 0
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikBold.mat.meta b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikBold.mat.meta
similarity index 100%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikBold.mat.meta
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikBold.mat.meta
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikLight.mat b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikLight.mat
similarity index 90%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikLight.mat
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikLight.mat
index 0dc434a2341..79905474858 100644
--- a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikLight.mat
+++ b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikLight.mat
@@ -6,16 +6,15 @@ Material:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
- m_Name: 3DTextSelawikLight
- m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_Name: Text3DSelawikLight
+ m_Shader: {fileID: 4800000, guid: 80c006b91733f1a4991c49af89321ecd, type: 3}
m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _HOVER_LIGHT
_SPECULAR_HIGHLIGHTS
m_LightmapFlags: 5
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: 2000
- stringTagMap:
- RenderType: Opaque
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
@@ -24,6 +23,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ 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}
@@ -74,6 +77,7 @@ Material:
- _ClippingPlaneBorderWidth: 0.025
- _ColorMask: 15
- _ColorWriteMask: 15
+ - _Cull: 2
- _CullMode: 2
- _CustomMode: 0
- _Cutoff: 0.5
@@ -81,6 +85,7 @@ Material:
- _DirectionalLight: 1
- _DstBlend: 0
- _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
- _EnableEmission: 0
- _EnableHoverColorOpaqueOverride: 0
- _EnableHoverColorOverride: 0
@@ -94,6 +99,7 @@ Material:
- _HoverLight: 1
- _HoverLightOpaque: 0
- _InnerGlow: 0
+ - _InstancedColor: 0
- _Metallic: 0
- _Mode: 0
- _NearPlaneFade: 0
@@ -113,8 +119,11 @@ Material:
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
+ - _StencilComparison: 0
- _StencilOp: 0
+ - _StencilOperation: 0
- _StencilReadMask: 255
+ - _StencilReference: 0
- _StencilWriteMask: 255
- _UVSec: 0
- _UseUIAlphaClip: 0
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikLight.mat.meta b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikLight.mat.meta
similarity index 100%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikLight.mat.meta
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikLight.mat.meta
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemibold.mat b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemibold.mat
similarity index 88%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemibold.mat
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemibold.mat
index 2224ceec036..25580b337d3 100644
--- a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemibold.mat
+++ b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemibold.mat
@@ -6,16 +6,15 @@ Material:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
- m_Name: 3DTextSelawikSemibold
- m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
- m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _DISABLE_ALBEDO_MAP
- _HOVER_LIGHT _SPECULAR_HIGHLIGHTS
+ m_Name: Text3DSelawikSemibold
+ m_Shader: {fileID: 4800000, guid: 80c006b91733f1a4991c49af89321ecd, type: 3}
+ m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _HOVER_LIGHT
+ _SPECULAR_HIGHLIGHTS
m_LightmapFlags: 5
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: 2000
- stringTagMap:
- RenderType: Opaque
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
@@ -24,6 +23,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ 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}
@@ -74,6 +77,7 @@ Material:
- _ClippingPlaneBorderWidth: 0.025
- _ColorMask: 15
- _ColorWriteMask: 15
+ - _Cull: 2
- _CullMode: 2
- _CustomMode: 0
- _Cutoff: 0.5
@@ -81,6 +85,7 @@ Material:
- _DirectionalLight: 1
- _DstBlend: 0
- _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
- _EnableEmission: 0
- _EnableHoverColorOpaqueOverride: 0
- _EnableHoverColorOverride: 0
@@ -94,6 +99,7 @@ Material:
- _HoverLight: 1
- _HoverLightOpaque: 0
- _InnerGlow: 0
+ - _InstancedColor: 0
- _Metallic: 0
- _Mode: 0
- _NearPlaneFade: 0
@@ -113,8 +119,11 @@ Material:
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
+ - _StencilComparison: 0
- _StencilOp: 0
+ - _StencilOperation: 0
- _StencilReadMask: 255
+ - _StencilReference: 0
- _StencilWriteMask: 255
- _UVSec: 0
- _UseUIAlphaClip: 0
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemibold.mat.meta b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemibold.mat.meta
similarity index 100%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemibold.mat.meta
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemibold.mat.meta
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemilight.mat b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemilight.mat
similarity index 89%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemilight.mat
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemilight.mat
index 6b67f90f714..08b810b1e7a 100644
--- a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemilight.mat
+++ b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemilight.mat
@@ -6,16 +6,15 @@ Material:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
- m_Name: 3DTextSelawikSemilight
- m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
+ m_Name: Text3DSelawikSemilight
+ m_Shader: {fileID: 4800000, guid: 80c006b91733f1a4991c49af89321ecd, type: 3}
m_ShaderKeywords: _BORDER_LIGHT_USES_HOVER_COLOR _DIRECTIONAL_LIGHT _HOVER_LIGHT
_SPECULAR_HIGHLIGHTS
m_LightmapFlags: 5
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: 2000
- stringTagMap:
- RenderType: Opaque
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
@@ -24,6 +23,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _ChannelMap:
+ 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}
@@ -74,6 +77,7 @@ Material:
- _ClippingPlaneBorderWidth: 0.025
- _ColorMask: 15
- _ColorWriteMask: 15
+ - _Cull: 2
- _CullMode: 2
- _CustomMode: 0
- _Cutoff: 0.5
@@ -81,6 +85,7 @@ Material:
- _DirectionalLight: 1
- _DstBlend: 0
- _EdgeSmoothingValue: 0.002
+ - _EnableChannelMap: 0
- _EnableEmission: 0
- _EnableHoverColorOpaqueOverride: 0
- _EnableHoverColorOverride: 0
@@ -94,6 +99,7 @@ Material:
- _HoverLight: 1
- _HoverLightOpaque: 0
- _InnerGlow: 0
+ - _InstancedColor: 0
- _Metallic: 0
- _Mode: 0
- _NearPlaneFade: 0
@@ -113,8 +119,11 @@ Material:
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
+ - _StencilComparison: 0
- _StencilOp: 0
+ - _StencilOperation: 0
- _StencilReadMask: 255
+ - _StencilReference: 0
- _StencilWriteMask: 255
- _UVSec: 0
- _UseUIAlphaClip: 0
diff --git a/Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemilight.mat.meta b/Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemilight.mat.meta
similarity index 100%
rename from Assets/MixedRealityToolkit/Resources/Materials/3DTextSelawikSemilight.mat.meta
rename to Assets/MixedRealityToolkit/Resources/Materials/Text3DSelawikSemilight.mat.meta
diff --git a/Assets/MixedRealityToolkit/Resources/Shaders/Text3DShader.shader b/Assets/MixedRealityToolkit/Resources/Shaders/Text3DShader.shader
new file mode 100644
index 00000000000..4087e6b2e47
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Resources/Shaders/Text3DShader.shader
@@ -0,0 +1,114 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+///
+/// Basic 3D TextMesh shader with proper z-sorting and culling options.
+///
+Shader "Mixed Reality Toolkit/Text3DShader"
+{
+ Properties
+ {
+ _MainTex ("Alpha (A)", 2D) = "white" {}
+ [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 2
+
+ [HideInInspector] _Color ("Main Color", Color) = (1,1,1,1)
+ [HideInInspector] _StencilComp ("Stencil Comparison", Float) = 8
+ [HideInInspector] _Stencil ("Stencil ID", Float) = 0
+ [HideInInspector] _StencilOp ("Stencil Operation", Float) = 0
+ [HideInInspector] _StencilWriteMask ("Stencil Write Mask", Float) = 255
+ [HideInInspector] _StencilReadMask ("Stencil Read Mask", Float) = 255
+ [HideInInspector] _ColorMask ("Color Mask", Float) = 15
+ }
+
+ SubShader
+ {
+ LOD 200
+
+ Tags
+ {
+ "Queue" = "Transparent"
+ "IgnoreProjector" = "True"
+ "RenderType" = "Transparent"
+ "PreviewType"="Plane"
+ }
+
+ Stencil
+ {
+ Ref [_Stencil]
+ Comp [_StencilComp]
+ Pass [_StencilOp]
+ ReadMask [_StencilReadMask]
+ WriteMask [_StencilWriteMask]
+ }
+
+ Cull [_Cull]
+ Lighting Off
+ ZWrite Off
+ ZTest [unity_GUIZTestMode]
+ Offset -1, -1
+ Fog { Mode Off }
+ Blend SrcAlpha OneMinusSrcAlpha
+ ColorMask [_ColorMask]
+
+ Pass
+ {
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile_instancing
+ #include "UnityCG.cginc"
+
+ struct appdata_t
+ {
+ float4 vertex : POSITION;
+ half4 color : COLOR;
+ float2 texcoord : TEXCOORD0;
+ UNITY_VERTEX_INPUT_INSTANCE_ID
+ };
+
+ struct v2f
+ {
+ float4 vertex : POSITION;
+ half4 color : COLOR;
+ float2 texcoord : TEXCOORD0;
+ UNITY_VERTEX_INPUT_INSTANCE_ID
+ UNITY_VERTEX_OUTPUT_STEREO
+
+ };
+
+ sampler2D _MainTex;
+ float4 _MainTex_ST;
+ UNITY_INSTANCING_BUFFER_START(Props)
+ UNITY_DEFINE_INSTANCED_PROP(fixed4, _Color)
+#define _Color_arr Props
+ UNITY_INSTANCING_BUFFER_END(Props)
+
+ v2f vert (appdata_t v)
+ {
+ v2f o;
+ UNITY_SETUP_INSTANCE_ID(v);
+ UNITY_TRANSFER_INSTANCE_ID(v, o);
+ UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
+ o.vertex = UnityObjectToClipPos(v.vertex);
+ o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
+ o.color = v.color;
+ #ifdef UNITY_HALF_TEXEL_OFFSET
+ o.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1);
+ #endif
+ return o;
+ }
+
+ half4 frag (v2f i) : COLOR
+ {
+ UNITY_SETUP_INSTANCE_ID(i);
+ half4 col = i.color;
+ col.a *= tex2D(_MainTex, i.texcoord).a;
+ col = col * UNITY_ACCESS_INSTANCED_PROP(_Color_arr, _Color);
+ clip (col.a - 0.01);
+ return col;
+ }
+ ENDCG
+ }
+ }
+ CustomEditor "Microsoft.MixedReality.Toolkit.Core.Inspectors.Text3DShaderGUI"
+}
diff --git a/Assets/MixedRealityToolkit/Resources/Shaders/Text3DShader.shader.meta b/Assets/MixedRealityToolkit/Resources/Shaders/Text3DShader.shader.meta
new file mode 100644
index 00000000000..f17c44800ba
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Resources/Shaders/Text3DShader.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 80c006b91733f1a4991c49af89321ecd
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit/Utilities/InspectorFields.meta b/Assets/MixedRealityToolkit/Utilities/InspectorFields.meta
new file mode 100644
index 00000000000..3e2a9d57870
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Utilities/InspectorFields.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 793c3f0fd5016dc419f48fef64e2c0d7
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorField.cs b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorField.cs
new file mode 100644
index 00000000000..4afa3b14df9
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorField.cs
@@ -0,0 +1,259 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields
+{
+ ///
+ /// A set of field/proptery tags used to define how a property should render in a custom inspector
+ ///
+ public class InspectorField : Attribute
+ {
+ ///
+ /// Property types used for casting and defining property fields in the inspector
+ ///
+ public enum FieldTypes
+ {
+ Float,
+ Int,
+ String,
+ Bool,
+ Color,
+ DropdownInt,
+ DropdownString,
+ GameObject,
+ ScriptableObject,
+ Object,
+ Material,
+ Texture,
+ Vector2,
+ Vector3,
+ Vector4,
+ Curve,
+ Quaternion,
+ AudioClip,
+ Event
+ }
+
+ ///
+ /// The type of field or propterty value type
+ ///
+ public FieldTypes Type { get; set; }
+
+ ///
+ /// The label that will be rendered with the property field in the custom inspector
+ ///
+ public string Label { get; set; }
+
+ ///
+ /// A tooltip for the property field
+ ///
+ public string Tooltip { get; set; }
+
+ ///
+ /// A string list of options for a popup list
+ ///
+ public string[] Options { get; set; }
+
+ ///
+ /// An object to hold the actual value
+ ///
+ public UnityEngine.Object Value { get; set; }
+
+ public static InspectorPropertySetting FieldToProperty(InspectorField attributes, object fieldValue, string fieldName)
+ {
+ InspectorPropertySetting setting = new InspectorPropertySetting();
+ setting.Type = attributes.Type;
+ setting.Tooltip = attributes.Tooltip;
+ setting.Label = attributes.Label;
+ setting.Options = attributes.Options;
+ setting.Name = fieldName;
+ setting = UpdatePropertySetting(setting, fieldValue);
+ return setting;
+ }
+
+ ///
+ /// Set the value of the propertySetting
+ ///
+ ///
+ ///
+ ///
+ public static InspectorPropertySetting UpdatePropertySetting(InspectorPropertySetting setting, object update)
+ {
+ switch (setting.Type)
+ {
+ case InspectorField.FieldTypes.Float:
+ setting.FloatValue = (float)update;
+ break;
+ case InspectorField.FieldTypes.Int:
+ setting.IntValue = (int)update;
+ break;
+ case InspectorField.FieldTypes.String:
+ setting.StringValue = (string)update;
+ break;
+ case InspectorField.FieldTypes.Bool:
+ setting.BoolValue = (bool)update;
+ break;
+ case InspectorField.FieldTypes.Color:
+ setting.ColorValue = (Color)update;
+ break;
+ case InspectorField.FieldTypes.DropdownInt:
+ setting.IntValue = (int)update;
+ break;
+ case InspectorField.FieldTypes.DropdownString:
+ setting.StringValue = (string)update;
+ break;
+ case InspectorField.FieldTypes.GameObject:
+ setting.GameObjectValue = (GameObject)update;
+ break;
+ case InspectorField.FieldTypes.ScriptableObject:
+ setting.ScriptableObjectValue = (ScriptableObject)update;
+ break;
+ case InspectorField.FieldTypes.Object:
+ setting.ObjectValue = (UnityEngine.Object)update;
+ break;
+ case InspectorField.FieldTypes.Material:
+ setting.MaterialValue = (Material)update;
+ break;
+ case InspectorField.FieldTypes.Texture:
+ setting.TextureValue = (Texture)update;
+ break;
+ case InspectorField.FieldTypes.Vector2:
+ setting.Vector2Value = (Vector2)update;
+ break;
+ case InspectorField.FieldTypes.Vector3:
+ setting.Vector3Value = (Vector3)update;
+ break;
+ case InspectorField.FieldTypes.Vector4:
+ setting.Vector4Value = (Vector4)update;
+ break;
+ case InspectorField.FieldTypes.Curve:
+ setting.CurveValue = (AnimationCurve)update;
+ break;
+ case InspectorField.FieldTypes.Quaternion:
+ setting.QuaternionValue = (Quaternion)update;
+ break;
+ case InspectorField.FieldTypes.AudioClip:
+ setting.AudioClipValue = (AudioClip)update;
+ break;
+ case InspectorField.FieldTypes.Event:
+ setting.EventValue = (UnityEvent)update;
+ break;
+ default:
+ break;
+ }
+ return setting;
+ }
+
+ ///
+ /// Get the propertySettings value
+ ///
+ ///
+ ///
+ ///
+ public static object GetSettingValue(List settings, string name)
+ {
+ InspectorPropertySetting setting = new InspectorPropertySetting();
+ for (int i = 0; i < settings.Count; i++)
+ {
+ if (settings[i].Name == name)
+ {
+ setting = settings[i];
+ break;
+ }
+ }
+
+ object value = null;
+
+ switch (setting.Type)
+ {
+ case InspectorField.FieldTypes.Float:
+ value = setting.FloatValue;
+ break;
+ case InspectorField.FieldTypes.Int:
+ value = setting.IntValue;
+ break;
+ case InspectorField.FieldTypes.String:
+ value = setting.StringValue;
+ break;
+ case InspectorField.FieldTypes.Bool:
+ value = setting.BoolValue;
+ break;
+ case InspectorField.FieldTypes.Color:
+ value = setting.ColorValue;
+ break;
+ case InspectorField.FieldTypes.DropdownInt:
+ value = setting.IntValue;
+ break;
+ case InspectorField.FieldTypes.DropdownString:
+ value = setting.StringValue;
+ break;
+ case InspectorField.FieldTypes.GameObject:
+ value = setting.GameObjectValue;
+ break;
+ case InspectorField.FieldTypes.ScriptableObject:
+ value = setting.ScriptableObjectValue;
+ break;
+ case InspectorField.FieldTypes.Object:
+ value = setting.ObjectValue;
+ break;
+ case InspectorField.FieldTypes.Material:
+ value = setting.MaterialValue;
+ break;
+ case InspectorField.FieldTypes.Texture:
+ value = setting.TextureValue;
+ break;
+ case InspectorField.FieldTypes.Vector2:
+ value = setting.Vector2Value;
+ break;
+ case InspectorField.FieldTypes.Vector3:
+ value = setting.Vector3Value;
+ break;
+ case InspectorField.FieldTypes.Vector4:
+ value = setting.Vector4Value;
+ break;
+ case InspectorField.FieldTypes.Curve:
+ value = setting.CurveValue;
+ break;
+ case InspectorField.FieldTypes.Quaternion:
+ value = setting.QuaternionValue;
+ break;
+ case InspectorField.FieldTypes.AudioClip:
+ value = setting.AudioClipValue;
+ break;
+ case InspectorField.FieldTypes.Event:
+ value = setting.EventValue;
+ break;
+ default:
+ break;
+ }
+
+ return value;
+ }
+
+ ///
+ /// Get the index from a list of strings using string comparison
+ ///
+ ///
+ ///
+ ///
+ public static int ReverseLookup(string option, string[] options)
+ {
+ for (int i = 0; i < options.Length; i++)
+ {
+ if (options[i] == option)
+ {
+ return i;
+ }
+ }
+
+ return 0;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorField.cs.meta b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorField.cs.meta
new file mode 100644
index 00000000000..47ea6c5f5e9
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorField.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 97b23a2ea0ff33840bd55d146c26d3b4
+timeCreated: 1520904724
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorFieldData.cs b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorFieldData.cs
new file mode 100644
index 00000000000..1a884e4d8f6
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorFieldData.cs
@@ -0,0 +1,22 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+namespace Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields
+{
+ ///
+ /// A reference to the InspectorField and cached info
+ ///
+ [System.Serializable]
+ public struct InspectorFieldData
+ {
+ public InspectorField Attributes;
+ public object Value;
+ public string Name;
+ }
+}
diff --git a/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorFieldData.cs.meta b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorFieldData.cs.meta
new file mode 100644
index 00000000000..a84989b5b69
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorFieldData.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f880799033caaf84c8415dd83c237dbe
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorGenericFields.cs b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorGenericFields.cs
new file mode 100644
index 00000000000..533f48cbb13
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorGenericFields.cs
@@ -0,0 +1,90 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields
+{
+ ///
+ /// A set of Inspector fields for setting up properties in a
+ /// component that can be automatically rendered in a custom inspector
+ ///
+ public class InspectorGenericFields
+ {
+ ///
+ /// Copies values from Inspector PropertySettings to an instantiated class on start,
+ /// helps overcome polymorphism limitations of serialization
+ ///
+ ///
+ ///
+ public static void LoadSettings(T target, List settings)
+ {
+ Type myType = target.GetType();
+
+ PropertyInfo[] propInfoList = myType.GetProperties();
+ for (int i = 0; i < propInfoList.Length; i++)
+ {
+ PropertyInfo propInfo = propInfoList[i];
+ var attrs = (InspectorField[])propInfo.GetCustomAttributes(typeof(InspectorField), false);
+ foreach (var attr in attrs)
+ {
+ object value = InspectorField.GetSettingValue(settings, propInfo.Name);
+ propInfo.SetValue(target, value);
+ }
+ }
+
+ FieldInfo[] fieldInfoList = myType.GetFields();
+ for (int i = 0; i < fieldInfoList.Length; i++)
+ {
+ FieldInfo fieldInfo = fieldInfoList[i];
+ var attrs = (InspectorField[])fieldInfo.GetCustomAttributes(typeof(InspectorField), false);
+ foreach (var attr in attrs)
+ {
+ object value = InspectorField.GetSettingValue(settings, fieldInfo.Name);
+ fieldInfo.SetValue(target, value);
+ }
+ }
+ }
+
+ ///
+ /// Searches through a class for InspectorField tags creates properties that can be serialized and
+ /// automatically rendered in a custom inspector
+ ///
+ ///
+ ///
+ public static List GetSettings(T source)
+ {
+ Type myType = source.GetType();
+ List settings = new List();
+
+ PropertyInfo[] propInfoList = myType.GetProperties();
+ for (int i = 0; i < propInfoList.Length; i++)
+ {
+ PropertyInfo propInfo = propInfoList[i];
+ var attrs = (InspectorField[])propInfo.GetCustomAttributes(typeof(InspectorField), false);
+ foreach (var attr in attrs)
+ {
+ settings.Add(InspectorField.FieldToProperty(attr, propInfo.GetValue(source, null), propInfo.Name));
+ }
+ }
+
+ FieldInfo[] fieldInfoList = myType.GetFields();
+ for (int i = 0; i < fieldInfoList.Length; i++)
+ {
+ FieldInfo fieldInfo = fieldInfoList[i];
+ var attrs = (InspectorField[])fieldInfo.GetCustomAttributes(typeof(InspectorField), false);
+ foreach (var attr in attrs)
+ {
+ settings.Add(InspectorField.FieldToProperty(attr, fieldInfo.GetValue(source), fieldInfo.Name));
+ }
+ }
+
+ return settings;
+ }
+ }
+}
diff --git a/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorGenericFields.cs.meta b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorGenericFields.cs.meta
new file mode 100644
index 00000000000..7ff935d00de
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorGenericFields.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0176398ffa94f8c41a4808f2a8bd5dc2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorPropertySettings.cs b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorPropertySettings.cs
new file mode 100644
index 00000000000..dc98a46786c
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorPropertySettings.cs
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+
+namespace Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields
+{
+ ///
+ /// A InspectorField property definition and value.
+ ///
+ [System.Serializable]
+ public struct InspectorPropertySetting
+ {
+ public InspectorField.FieldTypes Type;
+ public string Label;
+ public string Name;
+ public string Tooltip;
+ public int IntValue;
+ public string StringValue;
+ public float FloatValue;
+ public bool BoolValue;
+ public GameObject GameObjectValue;
+ public ScriptableObject ScriptableObjectValue;
+ public UnityEngine.Object ObjectValue;
+ public Material MaterialValue;
+ public Texture TextureValue;
+ public Color ColorValue;
+ public Vector2 Vector2Value;
+ public Vector3 Vector3Value;
+ public Vector4 Vector4Value;
+ public AnimationCurve CurveValue;
+ public AudioClip AudioClipValue;
+ public Quaternion QuaternionValue;
+ public UnityEvent EventValue;
+ public string[] Options;
+ }
+}
diff --git a/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorPropertySettings.cs.meta b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorPropertySettings.cs.meta
new file mode 100644
index 00000000000..37a5c6fcf95
--- /dev/null
+++ b/Assets/MixedRealityToolkit/Utilities/InspectorFields/InspectorPropertySettings.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f6cac8fc47c19a34e8118f587c0b5319
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: