Skip to content

Commit 61ee9fe

Browse files
author
David Kline
authored
Merge pull request #2571 from StephenHodgson/vNEXT-TeleportCleanup
Cleaned up event system if teleport system creates one.
2 parents f869123 + abd5cdd commit 61ee9fe

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

Assets/MixedRealityToolkit-SDK/Features/Teleportation/MixedRealityTeleportManager.cs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ public class MixedRealityTeleportManager : MixedRealityEventManager, IMixedReali
2424
private Vector3 targetPosition = Vector3.zero;
2525
private Vector3 targetRotation = Vector3.zero;
2626

27+
/// <summary>
28+
/// only used to clean up event system when shutting down if this system created one.
29+
/// </summary>
30+
private GameObject eventSystemReference;
31+
2732
#region IMixedRealityManager Implementation
2833

2934
/// <inheritdoc />
@@ -54,7 +59,8 @@ private void InitializeInternal()
5459
{
5560
if (!MixedRealityManager.Instance.ActiveProfile.IsInputSystemEnabled)
5661
{
57-
new GameObject("Event System").AddComponent<EventSystem>();
62+
eventSystemReference = new GameObject("Event System");
63+
eventSystemReference.AddComponent<EventSystem>();
5864
}
5965
else
6066
{
@@ -72,6 +78,24 @@ private void InitializeInternal()
7278
teleportEventData = new TeleportEventData(EventSystem.current);
7379
}
7480

81+
/// <inheritdoc />
82+
public override void Destroy()
83+
{
84+
base.Destroy();
85+
86+
if (eventSystemReference != null)
87+
{
88+
if (Application.isEditor)
89+
{
90+
Object.DestroyImmediate(eventSystemReference);
91+
}
92+
else
93+
{
94+
Object.Destroy(eventSystemReference);
95+
}
96+
}
97+
}
98+
7599
#endregion IMixedRealityManager Implementation
76100

77101
#region IEventSystemManager Implementation

0 commit comments

Comments
 (0)