private void OnWorkspaceDestroyed(Workspace workspace) { m_AllWorkspaces.Remove(workspace); DisconnectInterfaces(workspace); var miniWorld = workspace as IMiniWorld; if (miniWorld == null) { return; } //Clean up MiniWorldRays m_MiniWorlds.Remove(miniWorld); var miniWorldRaysCopy = new Dictionary <Transform, MiniWorldRay>(m_MiniWorldRays); foreach (var ray in miniWorldRaysCopy.Where(ray => ray.Value.miniWorld.Equals(miniWorld))) { m_PlayerHandle.maps.Remove(ray.Value.uiInput); m_InputModule.RemoveRaycastSource(ray.Key); m_MiniWorldRays.Remove(ray.Key); } }