Beispiel #1
0
    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);
        }
    }