Skip to content

Commit 2441ec2

Browse files
author
David Kline (ANALOG)
committed
Merge remote-tracking branch 'upstream/mrtk_development' into feature/mrtk_spatialAwareness
2 parents 511318c + 0a3b5db commit 2441ec2

35 files changed

+1260
-117
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?")]
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 & 24 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>
@@ -65,18 +67,6 @@ public class BaseCursor : InputSystemGlobalListener, IMixedRealityCursor
6567
private Vector3 targetScale;
6668
private Quaternion targetRotation;
6769

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-
8070
#region IMixedRealityCursor Implementation
8171

8272
/// <inheritdoc />
@@ -113,10 +103,10 @@ public float DefaultCursorDistance
113103
/// <inheritdoc />
114104
public virtual Vector3 LocalScale => transform.localScale;
115105

116-
/// <inheritdoc />
117106
public virtual void SetVisibility(bool visible)
118107
{
119-
if (PrimaryCursorVisual != null)
108+
if (PrimaryCursorVisual != null &&
109+
PrimaryCursorVisual.gameObject.activeInHierarchy != visible)
120110
{
121111
PrimaryCursorVisual.gameObject.SetActive(visible);
122112
isVisible = visible;
@@ -141,7 +131,12 @@ public virtual void OnSourceDetected(SourceStateEventData eventData)
141131
if (eventData.InputSource.Pointers[i].PointerId == Pointer.PointerId)
142132
{
143133
visibleSourcesCount++;
144-
SetVisibility(true);
134+
135+
if (SetVisibilityOnSourceDetected && visibleSourcesCount == 1)
136+
{
137+
SetVisibility(true);
138+
}
139+
145140
return;
146141
}
147142
}
@@ -173,10 +168,14 @@ public virtual void OnSourceLost(SourceStateEventData eventData)
173168
}
174169
}
175170

176-
if (visibleSourcesCount == 0)
171+
if (!IsSourceDetected)
177172
{
178173
IsPointerDown = false;
179-
SetVisibility(false);
174+
175+
if (SetVisibilityOnSourceDetected)
176+
{
177+
SetVisibility(false);
178+
}
180179
}
181180
}
182181

@@ -231,13 +230,6 @@ public virtual void OnPointerUp(MixedRealityPointerEventData eventData)
231230

232231
#region MonoBehaviour Implementation
233232

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-
241233
private void Update()
242234
{
243235
UpdateCursorState();

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ protected override void UpdateCursorTransform()
8383
if (Pointer == null)
8484
{
8585
Debug.LogError($"[TeleportCursor.{name}] No Pointer has been assigned!");
86+
SetVisibility(false);
8687
return;
8788
}
8889

@@ -93,6 +94,7 @@ protected override void UpdateCursorTransform()
9394
Debug.LogError(InputSystem.FocusProvider.IsPointerRegistered(Pointer)
9495
? $"{gameObject.name}: Unable to get focus details for {pointer.GetType().Name}!"
9596
: $"{pointer.GetType().Name} has not been registered!");
97+
SetVisibility(false);
9698
return;
9799
}
98100

0 commit comments

Comments
 (0)