Skip to content

Commit 3e190d4

Browse files
authored
Merge pull request #4 from Microsoft/mrtk_development
update mrtk_development
2 parents b8bb4d8 + 8dc3aec commit 3e190d4

File tree

48 files changed

+1452
-238
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1452
-238
lines changed

Assets/MixedRealityToolkit-SDK/Features/Input/GazeProvider.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@ protected override void Start()
278278
var cursorObj = Instantiate(cursorPrefab, transform.parent);
279279
GazePointer.BaseCursor = cursorObj.GetComponent<IMixedRealityCursor>();
280280
Debug.Assert(GazePointer.BaseCursor != null, "Failed to load cursor");
281+
GazePointer.BaseCursor.SetVisibilityOnSourceDetected = false;
281282
GazePointer.BaseCursor.Pointer = GazePointer;
282283
}
283284

Assets/MixedRealityToolkit-SDK/Features/Input/Handlers/ControllerPoseSynchronizer.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ public class ControllerPoseSynchronizer : InputSystemGlobalListener, IMixedReali
2323
private Handedness handedness = Handedness.Left;
2424

2525
/// <inheritdoc />
26-
public Handedness Handedness => handedness;
26+
public Handedness Handedness
27+
{
28+
get { return handedness; }
29+
set { handedness = value; }
30+
}
2731

2832
[SerializeField]
2933
[Tooltip("Should this GameObject clean itself up when it's controller is lost?")]

Assets/MixedRealityToolkit-SDK/Features/Input/MixedRealityInputManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1618,10 +1618,10 @@ public void RaiseManipulationCanceled(IMixedRealityInputSource source, Handednes
16181618
};
16191619

16201620
/// <inheritdoc />
1621-
public void RaiseSpeechCommandRecognized(IMixedRealityInputSource source, MixedRealityInputAction inputAction, UnityEngine.Windows.Speech.ConfidenceLevel confidence, TimeSpan phraseDuration, DateTime phraseStartTime, UnityEngine.Windows.Speech.SemanticMeaning[] semanticMeanings, string text)
1621+
public void RaiseSpeechCommandRecognized(IMixedRealityInputSource source, MixedRealityInputAction inputAction, RecognitionConfidenceLevel confidence, TimeSpan phraseDuration, DateTime phraseStartTime, string text)
16221622
{
16231623
// Create input event
1624-
speechEventData.Initialize(source, inputAction, confidence, phraseDuration, phraseStartTime, semanticMeanings, text);
1624+
speechEventData.Initialize(source, inputAction, confidence, phraseDuration, phraseStartTime, text);
16251625

16261626
// Pass handler through HandleEvent to perform modal/fallback logic
16271627
HandleEvent(speechEventData, OnSpeechKeywordRecognizedEventHandler);
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!1001 &100100000
4+
Prefab:
5+
m_ObjectHideFlags: 1
6+
serializedVersion: 2
7+
m_Modification:
8+
m_TransformParent: {fileID: 0}
9+
m_Modifications: []
10+
m_RemovedComponents: []
11+
m_ParentPrefab: {fileID: 0}
12+
m_RootGameObject: {fileID: 1151083198953756}
13+
m_IsPrefabParent: 1
14+
--- !u!1 &1151083198953756
15+
GameObject:
16+
m_ObjectHideFlags: 0
17+
m_PrefabParentObject: {fileID: 0}
18+
m_PrefabInternal: {fileID: 100100000}
19+
serializedVersion: 5
20+
m_Component:
21+
- component: {fileID: 4512687923801402}
22+
- component: {fileID: 114383503927128622}
23+
- component: {fileID: 114512740514387886}
24+
m_Layer: 2
25+
m_Name: MouseCursor
26+
m_TagString: Untagged
27+
m_Icon: {fileID: 0}
28+
m_NavMeshLayer: 0
29+
m_StaticEditorFlags: 0
30+
m_IsActive: 1
31+
--- !u!1 &1661198717155778
32+
GameObject:
33+
m_ObjectHideFlags: 0
34+
m_PrefabParentObject: {fileID: 0}
35+
m_PrefabInternal: {fileID: 100100000}
36+
serializedVersion: 5
37+
m_Component:
38+
- component: {fileID: 4183008042518438}
39+
- component: {fileID: 33403821616932028}
40+
- component: {fileID: 23618217082719568}
41+
m_Layer: 2
42+
m_Name: CursorVisual
43+
m_TagString: Untagged
44+
m_Icon: {fileID: 0}
45+
m_NavMeshLayer: 0
46+
m_StaticEditorFlags: 0
47+
m_IsActive: 1
48+
--- !u!4 &4183008042518438
49+
Transform:
50+
m_ObjectHideFlags: 1
51+
m_PrefabParentObject: {fileID: 0}
52+
m_PrefabInternal: {fileID: 100100000}
53+
m_GameObject: {fileID: 1661198717155778}
54+
m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
55+
m_LocalPosition: {x: -0.125, y: -0.125, z: 0}
56+
m_LocalScale: {x: 0.25, y: 0.25, z: 0.25}
57+
m_Children: []
58+
m_Father: {fileID: 4512687923801402}
59+
m_RootOrder: 0
60+
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
61+
--- !u!4 &4512687923801402
62+
Transform:
63+
m_ObjectHideFlags: 1
64+
m_PrefabParentObject: {fileID: 0}
65+
m_PrefabInternal: {fileID: 100100000}
66+
m_GameObject: {fileID: 1151083198953756}
67+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
68+
m_LocalPosition: {x: 0, y: 0, z: 0}
69+
m_LocalScale: {x: 1, y: 1, z: 1}
70+
m_Children:
71+
- {fileID: 4183008042518438}
72+
m_Father: {fileID: 0}
73+
m_RootOrder: 0
74+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
75+
--- !u!23 &23618217082719568
76+
MeshRenderer:
77+
m_ObjectHideFlags: 1
78+
m_PrefabParentObject: {fileID: 0}
79+
m_PrefabInternal: {fileID: 100100000}
80+
m_GameObject: {fileID: 1661198717155778}
81+
m_Enabled: 1
82+
m_CastShadows: 1
83+
m_ReceiveShadows: 1
84+
m_DynamicOccludee: 1
85+
m_MotionVectors: 1
86+
m_LightProbeUsage: 1
87+
m_ReflectionProbeUsage: 1
88+
m_RenderingLayerMask: 4294967295
89+
m_Materials:
90+
- {fileID: 2100000, guid: 43227df6ef613c94b90ed7552efb9b49, type: 2}
91+
m_StaticBatchInfo:
92+
firstSubMesh: 0
93+
subMeshCount: 0
94+
m_StaticBatchRoot: {fileID: 0}
95+
m_ProbeAnchor: {fileID: 0}
96+
m_LightProbeVolumeOverride: {fileID: 0}
97+
m_ScaleInLightmap: 1
98+
m_PreserveUVs: 0
99+
m_IgnoreNormalsForChartDetection: 0
100+
m_ImportantGI: 0
101+
m_StitchLightmapSeams: 0
102+
m_SelectedEditorRenderState: 3
103+
m_MinimumChartSize: 4
104+
m_AutoUVMaxDistance: 0.5
105+
m_AutoUVMaxAngle: 89
106+
m_LightmapParameters: {fileID: 0}
107+
m_SortingLayerID: 0
108+
m_SortingLayer: 0
109+
m_SortingOrder: 0
110+
--- !u!33 &33403821616932028
111+
MeshFilter:
112+
m_ObjectHideFlags: 1
113+
m_PrefabParentObject: {fileID: 0}
114+
m_PrefabInternal: {fileID: 100100000}
115+
m_GameObject: {fileID: 1661198717155778}
116+
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
117+
--- !u!114 &114383503927128622
118+
MonoBehaviour:
119+
m_ObjectHideFlags: 1
120+
m_PrefabParentObject: {fileID: 0}
121+
m_PrefabInternal: {fileID: 100100000}
122+
m_GameObject: {fileID: 1151083198953756}
123+
m_Enabled: 1
124+
m_EditorHideFlags: 0
125+
m_Script: {fileID: 11500000, guid: 305511cf46164e8a8a7f71ac65deefbb, type: 3}
126+
m_Name:
127+
m_EditorClassIdentifier:
128+
surfaceCursorDistance: 0.02
129+
useUnscaledTime: 1
130+
positionLerpTime: 0.01
131+
scaleLerpTime: 0.01
132+
rotationLerpTime: 0.01
133+
lookRotationBlend: 0.5
134+
PrimaryCursorVisual: {fileID: 4183008042518438}
135+
defaultCursorDistance: 2
136+
CursorStateData: []
137+
TargetRenderer: {fileID: 23618217082719568}
138+
--- !u!114 &114512740514387886
139+
MonoBehaviour:
140+
m_ObjectHideFlags: 1
141+
m_PrefabParentObject: {fileID: 0}
142+
m_PrefabInternal: {fileID: 100100000}
143+
m_GameObject: {fileID: 1151083198953756}
144+
m_Enabled: 1
145+
m_EditorHideFlags: 0
146+
m_Script: {fileID: 11500000, guid: 9296b71443954db1b4571935a43e5266, type: 3}
147+
m_Name:
148+
m_EditorClassIdentifier:
149+
radius: 0.15
150+
color: {r: 0.3, g: 0.3, b: 0.3, a: 1}

Assets/MixedRealityToolkit-SDK/Features/UX/Prefabs/Cursors/MouseCursor.prefab.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!1001 &100100000
4+
Prefab:
5+
m_ObjectHideFlags: 1
6+
serializedVersion: 2
7+
m_Modification:
8+
m_TransformParent: {fileID: 0}
9+
m_Modifications: []
10+
m_RemovedComponents: []
11+
m_ParentPrefab: {fileID: 0}
12+
m_RootGameObject: {fileID: 1247086986094436}
13+
m_IsPrefabParent: 1
14+
--- !u!1 &1247086986094436
15+
GameObject:
16+
m_ObjectHideFlags: 0
17+
m_PrefabParentObject: {fileID: 0}
18+
m_PrefabInternal: {fileID: 100100000}
19+
serializedVersion: 5
20+
m_Component:
21+
- component: {fileID: 4215223911988956}
22+
- component: {fileID: 114035756607602504}
23+
m_Layer: 0
24+
m_Name: MousePointer
25+
m_TagString: Untagged
26+
m_Icon: {fileID: 0}
27+
m_NavMeshLayer: 0
28+
m_StaticEditorFlags: 0
29+
m_IsActive: 1
30+
--- !u!4 &4215223911988956
31+
Transform:
32+
m_ObjectHideFlags: 1
33+
m_PrefabParentObject: {fileID: 0}
34+
m_PrefabInternal: {fileID: 100100000}
35+
m_GameObject: {fileID: 1247086986094436}
36+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
37+
m_LocalPosition: {x: 0, y: 0, z: 0}
38+
m_LocalScale: {x: 1, y: 1, z: 1}
39+
m_Children: []
40+
m_Father: {fileID: 0}
41+
m_RootOrder: 0
42+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
43+
--- !u!114 &114035756607602504
44+
MonoBehaviour:
45+
m_ObjectHideFlags: 1
46+
m_PrefabParentObject: {fileID: 0}
47+
m_PrefabInternal: {fileID: 100100000}
48+
m_GameObject: {fileID: 1247086986094436}
49+
m_Enabled: 1
50+
m_EditorHideFlags: 0
51+
m_Script: {fileID: 11500000, guid: 45d3baa0a5986c24cbf0a6f6dcef2ec7, type: 3}
52+
m_Name:
53+
m_EditorClassIdentifier:
54+
handedness: 0
55+
destroyOnSourceLost: 0
56+
useSourcePoseData: 1
57+
poseAction:
58+
id: 0
59+
description: None
60+
axisConstraint: 0
61+
cursorPrefab: {fileID: 1151083198953756, guid: 667821d88830305449757690d22f71e0,
62+
type: 2}
63+
raycastOrigin: {fileID: 0}
64+
activeHoldAction:
65+
id: 0
66+
description: None
67+
axisConstraint: 0
68+
pointerAction:
69+
id: 1
70+
description: Select
71+
axisConstraint: 2
72+
requiresHoldAction: 0
73+
overrideGlobalPointerExtent: 0
74+
pointerExtent: 10
75+
pointerOrientation: 0

Assets/MixedRealityToolkit-SDK/Features/UX/Prefabs/Pointers/MousePointer.prefab.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/MixedRealityToolkit-SDK/Features/UX/Prefabs/Pointers/ParabolicPointer.prefab

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,7 @@ MonoBehaviour:
267267
axisConstraint: 7
268268
cursorPrefab: {fileID: 1554777696564956, guid: ae2b3fffb00f464287cda86f49109b47,
269269
type: 2}
270+
disableCursorOnStart: 1
270271
raycastOrigin: {fileID: 0}
271272
activeHoldAction:
272273
id: 0

Assets/MixedRealityToolkit-SDK/Features/UX/Prefabs/Pointers/TouchPointer.prefab

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ MonoBehaviour:
104104
axisConstraint: 0
105105
cursorPrefab: {fileID: 1000012072213228, guid: 5b3e2856904e43c680f84f326861032a,
106106
type: 2}
107+
disableCursorOnStart: 1
108+
setCursorVisibilityOnSourceDetected: 1
107109
raycastOrigin: {fileID: 0}
108110
activeHoldAction:
109111
id: 0

Assets/MixedRealityToolkit-SDK/Features/UX/Scripts/Cursors/BaseCursor.cs

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ public class BaseCursor : InputSystemGlobalListener, IMixedRealityCursor
1818
{
1919
public CursorStateEnum CursorState { get; private set; } = CursorStateEnum.None;
2020

21+
public bool SetVisibilityOnSourceDetected { get; set; } = false;
22+
2123
/// <summary>
2224
/// Surface distance to place the cursor off of the surface at
2325
/// </summary>
@@ -59,24 +61,11 @@ public class BaseCursor : InputSystemGlobalListener, IMixedRealityCursor
5961
protected GameObject TargetedObject = null;
6062

6163
private uint visibleSourcesCount = 0;
62-
private bool isVisible = true;
6364

6465
private Vector3 targetPosition;
6566
private Vector3 targetScale;
6667
private Quaternion targetRotation;
6768

68-
/// <summary>
69-
/// Indicates if the cursor should be visible
70-
/// </summary>
71-
public bool IsVisible
72-
{
73-
get { return isVisible; }
74-
set
75-
{
76-
SetVisibility(isVisible);
77-
}
78-
}
79-
8069
#region IMixedRealityCursor Implementation
8170

8271
/// <inheritdoc />
@@ -113,13 +102,12 @@ public float DefaultCursorDistance
113102
/// <inheritdoc />
114103
public virtual Vector3 LocalScale => transform.localScale;
115104

116-
/// <inheritdoc />
117105
public virtual void SetVisibility(bool visible)
118106
{
119-
if (PrimaryCursorVisual != null)
107+
if (PrimaryCursorVisual != null &&
108+
PrimaryCursorVisual.gameObject.activeInHierarchy != visible)
120109
{
121110
PrimaryCursorVisual.gameObject.SetActive(visible);
122-
isVisible = visible;
123111
}
124112
}
125113

@@ -141,7 +129,12 @@ public virtual void OnSourceDetected(SourceStateEventData eventData)
141129
if (eventData.InputSource.Pointers[i].PointerId == Pointer.PointerId)
142130
{
143131
visibleSourcesCount++;
144-
SetVisibility(true);
132+
133+
if (SetVisibilityOnSourceDetected && visibleSourcesCount == 1)
134+
{
135+
SetVisibility(true);
136+
}
137+
145138
return;
146139
}
147140
}
@@ -173,10 +166,14 @@ public virtual void OnSourceLost(SourceStateEventData eventData)
173166
}
174167
}
175168

176-
if (visibleSourcesCount == 0)
169+
if (!IsSourceDetected)
177170
{
178171
IsPointerDown = false;
179-
SetVisibility(false);
172+
173+
if (SetVisibilityOnSourceDetected)
174+
{
175+
SetVisibility(false);
176+
}
180177
}
181178
}
182179

@@ -231,13 +228,6 @@ public virtual void OnPointerUp(MixedRealityPointerEventData eventData)
231228

232229
#region MonoBehaviour Implementation
233230

234-
private void Awake()
235-
{
236-
// Use the setter to update visibility of the cursor at startup based on user preferences
237-
IsVisible = isVisible;
238-
SetVisibility(isVisible);
239-
}
240-
241231
private void Update()
242232
{
243233
UpdateCursorState();

0 commit comments

Comments
 (0)