// -----------------------------------------------------------------------------------
    // Show
    // -----------------------------------------------------------------------------------
    public void Show()
    {
        Camera.main.transform.position = creationCameraLocation.position;
        Camera.main.transform.rotation = creationCameraLocation.rotation;

        players = new List <Player>();
        players = manager.playerClasses;

        if (players == null || players.Count <= 0)
        {
            return;
        }

        for (int c = 0; c < players.Count; c++)
        {
            int temp = c;

            classList[temp].button.onClick.SetListener(() => SetCharacterClass(temp));
            classList[temp].label.text = players[temp].name;
            classList[temp].prefabID   = temp;

#if _iMMOUNLOCKABLECLASSES
            if (manager.UCE_HasUnlockedClass(players[temp]))
            {
                classList[temp].button.gameObject.SetActive(true);
            }
            else
            {
                classList[temp].button.gameObject.SetActive(false);
            }
#else
            classList[temp].button.gameObject.SetActive(true);
#endif
        }

#if _iMMOUNLOCKABLECLASSES
        for (int c = 0; c < players.Count; c++)
        {
            int selectedClass = c;
            if (manager.UCE_HasUnlockedClass(players[selectedClass]))
            {
                SetCharacterClass(selectedClass);
                break;
            }
        }
#else
        SetCharacterClass(0);
#endif

        createButton.onClick.SetListener(() =>
        {
            CreateCharacter();
        });

        cancelButton.onClick.SetListener(() =>
        {
            Hide();
        });

        panel.SetActive(true);

        bInit = true;
    }