Skip to content

Commit bb40bda

Browse files
author
David Kline
authored
Merge pull request #2396 from SimonDarksideJ/MRTK-Version-Next_OpenVRDevice
MRTK vNext - Open vr device initial implementation
2 parents a87517b + db26e8b commit bb40bda

File tree

15 files changed

+1524
-15
lines changed

15 files changed

+1524
-15
lines changed

Assets/MixedRealityToolkit-SDK/Profiles/DefaultMixedRealityControllerConfigurationProfile.asset

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,189 @@ MonoBehaviour:
7676
id: 0
7777
description: None
7878
axisConstraint: 0
79+
- id: 3
80+
description: OpenVR Controller Left
81+
controller:
82+
reference: Microsoft.MixedReality.Toolkit.Internal.Devices.OpenVR.GenericOpenVRController,
83+
Microsoft.MixedReality.Toolkit
84+
handedness: 1
85+
defaultModel: 0
86+
overrideModel: {fileID: 0}
87+
interactions:
88+
- id: 0
89+
axisType: 2
90+
inputType: 28
91+
inputAction:
92+
id: 0
93+
description:
94+
axisConstraint: 0
95+
- id: 0
96+
axisType: 7
97+
inputType: 3
98+
inputAction:
99+
id: 0
100+
description: None
101+
axisConstraint: 0
102+
- id: 0
103+
axisType: 2
104+
inputType: 30
105+
inputAction:
106+
id: 0
107+
description: None
108+
axisConstraint: 0
109+
- id: 0
110+
axisType: 3
111+
inputType: 10
112+
inputAction:
113+
id: 0
114+
description: None
115+
axisConstraint: 0
116+
- id: 0
117+
axisType: 2
118+
inputType: 17
119+
inputAction:
120+
id: 0
121+
description: None
122+
axisConstraint: 0
123+
- id: 0
124+
axisType: 3
125+
inputType: 17
126+
inputAction:
127+
id: 0
128+
description: None
129+
axisConstraint: 0
130+
- id: 0
131+
axisType: 3
132+
inputType: 10
133+
inputAction:
134+
id: 0
135+
description: None
136+
axisConstraint: 0
137+
- id: 0
138+
axisType: 4
139+
inputType: 24
140+
inputAction:
141+
id: 0
142+
description: None
143+
axisConstraint: 0
144+
- id: 0
145+
axisType: 2
146+
inputType: 25
147+
inputAction:
148+
id: 0
149+
description: None
150+
axisConstraint: 0
151+
- id: 0
152+
axisType: 2
153+
inputType: 27
154+
inputAction:
155+
id: 0
156+
description: None
157+
axisConstraint: 0
158+
- id: 0
159+
axisType: 4
160+
inputType: 20
161+
inputAction:
162+
id: 0
163+
description: None
164+
axisConstraint: 0
165+
- id: 0
166+
axisType: 2
167+
inputType: 21
168+
inputAction:
169+
id: 0
170+
description: None
171+
axisConstraint: 0
172+
- id: 4
173+
description: OpenVR Controller Right
174+
controller:
175+
reference: Microsoft.MixedReality.Toolkit.Internal.Devices.OpenVR.GenericOpenVRController,
176+
Microsoft.MixedReality.Toolkit
177+
handedness: 2
178+
defaultModel: 0
179+
overrideModel: {fileID: 0}
180+
interactions:
181+
- id: 0
182+
axisType: 2
183+
inputType: 28
184+
inputAction:
185+
id: 0
186+
description:
187+
axisConstraint: 0
188+
- id: 0
189+
axisType: 7
190+
inputType: 3
191+
inputAction:
192+
id: 0
193+
description: None
194+
axisConstraint: 0
195+
- id: 0
196+
axisType: 2
197+
inputType: 30
198+
inputAction:
199+
id: 0
200+
description: None
201+
axisConstraint: 0
202+
- id: 0
203+
axisType: 3
204+
inputType: 10
205+
inputAction:
206+
id: 0
207+
description: None
208+
axisConstraint: 0
209+
- id: 0
210+
axisType: 2
211+
inputType: 17
212+
inputAction:
213+
id: 0
214+
description: None
215+
axisConstraint: 0
216+
- id: 0
217+
axisType: 3
218+
inputType: 17
219+
inputAction:
220+
id: 0
221+
description: None
222+
axisConstraint: 0
223+
- id: 0
224+
axisType: 3
225+
inputType: 10
226+
inputAction:
227+
id: 0
228+
description: None
229+
axisConstraint: 0
230+
- id: 0
231+
axisType: 4
232+
inputType: 24
233+
inputAction:
234+
id: 0
235+
description: None
236+
axisConstraint: 0
237+
- id: 0
238+
axisType: 2
239+
inputType: 25
240+
inputAction:
241+
id: 0
242+
description: None
243+
axisConstraint: 0
244+
- id: 0
245+
axisType: 2
246+
inputType: 27
247+
inputAction:
248+
id: 0
249+
description: None
250+
axisConstraint: 0
251+
- id: 0
252+
axisType: 4
253+
inputType: 20
254+
inputAction:
255+
id: 0
256+
description: None
257+
axisConstraint: 0
258+
- id: 0
259+
axisType: 2
260+
inputType: 21
261+
inputAction:
262+
id: 0
263+
description: None
264+
axisConstraint: 0
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License. See LICENSE in the project root for license information.
3+
4+
using Microsoft.MixedReality.Toolkit.Internal.Utilities;
5+
using NUnit.Framework;
6+
7+
namespace Microsoft.MixedReality.Toolkit.Tests
8+
{
9+
public class UnityInputManagerHelperTests
10+
{
11+
[Test]
12+
public void Test01_TestAddCustomMappings()
13+
{
14+
InputMappingAxisUtility.InputManagerAxis[] OpenVRControllerAxisMappings =
15+
{
16+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TOUCHPAD_LEFT_CONTROLLER_HORIZONTAL", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 1 },
17+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TOUCHPAD_LEFT_CONTROLLER_VERTICAL", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 2 },
18+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TOUCHPAD_RIGHT_CONTROLLER_HORIZONTAL", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 4 },
19+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TOUCHPAD_RIGHT_CONTROLLER_VERTICAL", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 5 },
20+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TRIGGER_LEFT_CONTROLLER", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 9 },
21+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TRIGGER_RIGHT_CONTROLLER", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 10 },
22+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_GRIP_LEFT_CONTROLLER", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 11 },
23+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_GRIP_RIGHT_CONTROLLER", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 12 }
24+
};
25+
26+
InputMappingAxisUtility.ApplyMappings(OpenVRControllerAxisMappings);
27+
28+
Assert.IsTrue(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TOUCHPAD_LEFT_CONTROLLER_HORIZONTAL"));
29+
Assert.IsTrue(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TOUCHPAD_LEFT_CONTROLLER_VERTICAL"));
30+
Assert.IsTrue(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TOUCHPAD_RIGHT_CONTROLLER_HORIZONTAL"));
31+
Assert.IsTrue(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TOUCHPAD_RIGHT_CONTROLLER_VERTICAL"));
32+
Assert.IsTrue(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TRIGGER_LEFT_CONTROLLER"));
33+
Assert.IsTrue(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TRIGGER_RIGHT_CONTROLLER"));
34+
Assert.IsTrue(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_GRIP_LEFT_CONTROLLER"));
35+
Assert.IsTrue(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_GRIP_RIGHT_CONTROLLER"));
36+
}
37+
38+
[Test]
39+
public void Test02_TestRemoveCustomMappings()
40+
{
41+
InputMappingAxisUtility.InputManagerAxis[] OpenVRControllerAxisMappings =
42+
{
43+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TOUCHPAD_LEFT_CONTROLLER_HORIZONTAL", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 1 },
44+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TOUCHPAD_LEFT_CONTROLLER_VERTICAL", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 2 },
45+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TOUCHPAD_RIGHT_CONTROLLER_HORIZONTAL", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 4 },
46+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TOUCHPAD_RIGHT_CONTROLLER_VERTICAL", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 5 },
47+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TRIGGER_LEFT_CONTROLLER", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 9 },
48+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_TRIGGER_RIGHT_CONTROLLER", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 10 },
49+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_GRIP_LEFT_CONTROLLER", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 11 },
50+
new InputMappingAxisUtility.InputManagerAxis() { Name = "OPENVR_GRIP_RIGHT_CONTROLLER", Dead = 0.001f, Sensitivity = 1, Invert = false, Type = InputMappingAxisUtility.MappingAxisType.JoystickAxis, Axis = 12 }
51+
};
52+
53+
InputMappingAxisUtility.RemoveMappings(OpenVRControllerAxisMappings);
54+
55+
Assert.IsFalse(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TOUCHPAD_LEFT_CONTROLLER_HORIZONTAL"));
56+
Assert.IsFalse(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TOUCHPAD_LEFT_CONTROLLER_VERTICAL"));
57+
Assert.IsFalse(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TOUCHPAD_RIGHT_CONTROLLER_HORIZONTAL"));
58+
Assert.IsFalse(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TOUCHPAD_RIGHT_CONTROLLER_VERTICAL"));
59+
Assert.IsFalse(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TRIGGER_LEFT_CONTROLLER"));
60+
Assert.IsFalse(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_TRIGGER_RIGHT_CONTROLLER"));
61+
Assert.IsFalse(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_GRIP_LEFT_CONTROLLER"));
62+
Assert.IsFalse(InputMappingAxisUtility.DoesAxisNameExist("OPENVR_GRIP_RIGHT_CONTROLLER"));
63+
}
64+
}
65+
}

Assets/MixedRealityToolkit-Tests/UnityInputManagerHelperTests.cs.meta

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

Assets/MixedRealityToolkit/_Core/Definitions/Devices/DeviceInputType.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,5 +65,6 @@ public enum DeviceInputType
6565
MiddleFinger,
6666
RingFinger,
6767
PinkyFinger,
68+
SecondaryButton,
6869
}
6970
}

Assets/MixedRealityToolkit/_Core/Devices/BaseController.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,12 @@ protected BaseController(TrackingState trackingState, Handedness controllerHande
3333
IsPositionAvailable = false;
3434
IsPositionApproximate = false;
3535
IsRotationAvailable = false;
36+
37+
Enabled = true;
3638
}
3739

40+
public bool Enabled { get; set; }
41+
3842
/// <summary>
3943
/// Returns the current Input System if enabled, otherwise null.
4044
/// </summary>
@@ -91,7 +95,7 @@ public void SetupConfiguration(Type controllerType)
9195
}
9296

9397
//If no controller mappings found, warn the user. Does not stop the project from running.
94-
if (Interactions == null || Interactions.Length < 1) { Debug.LogWarning($"No Controller mapping found for {controllerType}"); }
98+
if (Interactions == null || Interactions.Length < 1) { Debug.LogWarning($"No Controller mapping found for {controllerType}"); Enabled = false; }
9599
}
96100
}
97101

0 commit comments

Comments
 (0)