Skip to content

Commit 5e9e600

Browse files
authored
Merge branch 'mrtk_development' into mrtk_inspector_upgrade_pt4
2 parents 6ef4b42 + ebb11f1 commit 5e9e600

File tree

142 files changed

+2766
-2096
lines changed

Some content is hidden

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

142 files changed

+2766
-2096
lines changed

Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit-Examples.Demos.UX.Interactables.asmdef renamed to Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit.Examples.Demos.UX.Interactables.asmdef

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "MixedRealityToolkit-Examples.Demos.UX.Interactables",
2+
"name": "MixedRealityToolkit.Examples.Demos.UX.Interactables",
33
"references": [
44
"Microsoft.MixedReality.Toolkit.SDK",
55
"Microsoft.MixedReality.Toolkit",
@@ -8,5 +8,9 @@
88
"optionalUnityReferences": [],
99
"includePlatforms": [],
1010
"excludePlatforms": [],
11-
"allowUnsafeCode": false
11+
"allowUnsafeCode": false,
12+
"overrideReferences": false,
13+
"precompiledReferences": [],
14+
"autoReferenced": true,
15+
"defineConstraints": []
1216
}

Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit-Examples.Demos.UX.Interactables.asmdef.meta renamed to Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/MixedRealityToolkit.Examples.Demos.UX.Interactables.asmdef.meta

File renamed without changes.

Assets/MixedRealityToolkit.Examples/Demos/UX/Interactables/Scenes/InteractablesGallery.unity

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,12 @@ Prefab:
317317
propertyPath: Events.Array.data[0].ClassName
318318
value: InteractableAudioReceiver
319319
objectReference: {fileID: 0}
320+
- target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
321+
type: 2}
322+
propertyPath: Events.Array.data[0].AssemblyQualifiedName
323+
value: Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events.InteractableAudioReceiver,
324+
Microsoft.MixedReality.Toolkit.SDK
325+
objectReference: {fileID: 0}
320326
- target: {fileID: 114718788154663760, guid: 51cc6641d88b49d46bd38572540efe6c,
321327
type: 2}
322328
propertyPath: Events.Array.data[0].HideUnityEvents
@@ -504,6 +510,8 @@ MonoBehaviour:
504510
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
505511
Culture=neutral, PublicKeyToken=null
506512
ClassName: CustomInteractablesReceiver
513+
AssemblyQualifiedName: Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events.CustomInteractablesReceiver,
514+
MixedRealityToolkit-Examples.Demos.UX.Interactables
507515
Settings: []
508516
HideUnityEvents: 1
509517
--- !u!4 &519184499 stripped
@@ -1154,6 +1162,12 @@ Prefab:
11541162
propertyPath: Events.Array.data[0].ClassName
11551163
value: InteractableOnFocusReceiver
11561164
objectReference: {fileID: 0}
1165+
- target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
1166+
type: 2}
1167+
propertyPath: Events.Array.data[0].AssemblyQualifiedName
1168+
value: Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events.InteractableOnFocusReceiver,
1169+
Microsoft.MixedReality.Toolkit.SDK
1170+
objectReference: {fileID: 0}
11571171
- target: {fileID: 114818926546564510, guid: 02c524b22137b5449904f5395141cc73,
11581172
type: 2}
11591173
propertyPath: Events.Array.data[0].HideUnityEvents
@@ -1855,6 +1869,8 @@ MonoBehaviour:
18551869
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
18561870
Culture=neutral, PublicKeyToken=null
18571871
ClassName: CustomInteractablesReceiver
1872+
AssemblyQualifiedName: Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.Events.CustomInteractablesReceiver,
1873+
MixedRealityToolkit-Examples.Demos.UX.Interactables
18581874
Settings: []
18591875
HideUnityEvents: 1
18601876
--- !u!4 &1441615695 stripped

Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef renamed to Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors",
2+
"name": "MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.Inspectors",
33
"references": [
44
"Microsoft.MixedReality.Toolkit.Core.Inspectors",
55
"Microsoft.MixedReality.Toolkit",
@@ -10,5 +10,9 @@
1010
"Editor"
1111
],
1212
"excludePlatforms": [],
13-
"allowUnsafeCode": false
13+
"allowUnsafeCode": false,
14+
"overrideReferences": false,
15+
"precompiledReferences": [],
16+
"autoReferenced": true,
17+
"defineConstraints": []
1418
}

Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit-Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef.meta renamed to Assets/MixedRealityToolkit.Examples/Demos/Utilities/InspectorFields/Inspectors/MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef.meta

File renamed without changes.

Assets/MixedRealityToolkit/Utilities/BuildAndDeploy/README.md.meta renamed to Assets/MixedRealityToolkit.Examples/toc.yml.meta

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

Assets/MixedRealityToolkit.Providers/OpenVR/MixedRealityToolkit.Providers.OpenVR.asmdef

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
"optionalUnityReferences": [],
77
"includePlatforms": [
88
"Editor",
9-
"LinuxStandalone32",
109
"LinuxStandalone64",
1110
"macOSStandalone",
1211
"WindowsStandalone32",

Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableEvent.cs

Lines changed: 18 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License. See LICENSE in the project root for license information.
33

44
using Microsoft.MixedReality.Toolkit.Core.Utilities.InspectorFields;
5+
using Microsoft.MixedReality.Toolkit.SDK.UX.Interactable.TypeResolution;
56
using System;
67
using System.Collections;
78
using System.Collections.Generic;
@@ -22,23 +23,24 @@ public class InteractableEvent
2223
public string Name;
2324
public UnityEvent Event;
2425
public string ClassName;
26+
public string AssemblyQualifiedName;
2527
public ReceiverBase Receiver;
2628
public List<InspectorPropertySetting> Settings;
2729
public bool HideUnityEvents;
2830

29-
public struct EventLists
30-
{
31-
public List<Type> EventTypes;
32-
public List<String> EventNames;
33-
}
34-
3531
public struct ReceiverData
3632
{
3733
public string Name;
3834
public bool HideUnityEvents;
3935
public List<InspectorFieldData> Fields;
4036
}
41-
37+
38+
/// <summary>
39+
/// The list of base classes whose derived classes will be included in interactable event
40+
/// selection dropdowns.
41+
/// </summary>
42+
private static readonly List<Type> candidateEventTypes = new List<Type>() { typeof(ReceiverBase) };
43+
4244
public ReceiverData AddOnClick()
4345
{
4446
return AddReceiver(typeof(InteractableOnClickReceiver));
@@ -95,41 +97,24 @@ public ReceiverData AddReceiver(Type type)
9597
/// Get the recieverBase types that contain event logic
9698
/// </summary>
9799
/// <returns></returns>
98-
public static EventLists GetEventTypes()
100+
public static InteractableTypesContainer GetEventTypes()
99101
{
100-
List<Type> eventTypes = new List<Type>();
101-
List<string> names = new List<string>();
102-
103-
var assemblys = AppDomain.CurrentDomain.GetAssemblies();
104-
foreach (var assembly in assemblys)
105-
{
106-
foreach (Type type in assembly.GetTypes())
107-
{
108-
TypeInfo info = type.GetTypeInfo();
109-
if (info.BaseType != null && info.BaseType.Equals(typeof(ReceiverBase)))
110-
{
111-
eventTypes.Add(type);
112-
names.Add(type.Name);
113-
}
114-
}
115-
}
116-
117-
EventLists lists = new EventLists();
118-
lists.EventTypes = eventTypes;
119-
lists.EventNames = names;
120-
return lists;
102+
return InteractableTypeFinder.Find(candidateEventTypes, TypeRestriction.DerivedOnly);
121103
}
122104

123105
/// <summary>
124106
/// Create the event and setup the values from the inspector
125107
/// </summary>
126108
/// <param name="iEvent"></param>
127-
/// <param name="lists"></param>
128109
/// <returns></returns>
129-
public static ReceiverBase GetReceiver(InteractableEvent iEvent, EventLists lists)
110+
public static ReceiverBase GetReceiver(InteractableEvent iEvent, InteractableTypesContainer interactableTypes)
130111
{
131-
int index = InspectorField.ReverseLookup(iEvent.ClassName, lists.EventNames.ToArray());
132-
Type eventType = lists.EventTypes[index];
112+
#if UNITY_EDITOR
113+
int index = InspectorField.ReverseLookup(iEvent.ClassName, interactableTypes.ClassNames);
114+
Type eventType = interactableTypes.Types[index];
115+
#else
116+
Type eventType = Type.GetType(iEvent.AssemblyQualifiedName);
117+
#endif
133118
// apply the settings?
134119
ReceiverBase newEvent = (ReceiverBase)Activator.CreateInstance(eventType, iEvent.Event);
135120
InspectorGenericFields<ReceiverBase>.LoadSettings(newEvent, iEvent.Settings);

Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiver.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ protected virtual void SetupEvents()
3030
{
3131
if (Events.Count > 0)
3232
{
33-
InteractableEvent.EventLists lists = InteractableEvent.GetEventTypes();
34-
Events[0].Receiver = InteractableEvent.GetReceiver(Events[0], lists);
33+
InteractableTypesContainer interactableTypes = InteractableEvent.GetEventTypes();
34+
Events[0].Receiver = InteractableEvent.GetReceiver(Events[0], interactableTypes);
3535
Events[0].Receiver.Host = this;
3636
}
3737
}

Assets/MixedRealityToolkit.SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiverList.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ protected virtual void Awake()
2929
/// </summary>
3030
protected virtual void SetupEvents()
3131
{
32-
InteractableEvent.EventLists lists = InteractableEvent.GetEventTypes();
32+
InteractableTypesContainer interactableTypes = InteractableEvent.GetEventTypes();
3333

3434
for (int i = 0; i < Events.Count; i++)
3535
{
36-
Events[i].Receiver = InteractableEvent.GetReceiver(Events[i], lists);
36+
Events[i].Receiver = InteractableEvent.GetReceiver(Events[i], interactableTypes);
3737
Events[i].Receiver.Host = this;
3838
}
3939
}

0 commit comments

Comments
 (0)