protected override void Awake()
    {
        base.Awake();

        pun = PUNManager.Instance;

        if (pun == null)
        {
            Debug.LogError($"{typeof(PUNMenuController)} could not find an instance of {typeof(PUNManager)}", this);
            return;
        }

        menu = InitialiseNewElement("Multi Player");
        VisualElement optionRoot = menu.Q(OPTION_ROOT);

        { //Join Room
            RoomField newRoomElement = new RoomField("New Room", "Room Name", "Create");
            newRoomElement.OnSubmit += () => CreateRoom(newRoomElement);
            optionRoot.Add(newRoomElement);
        }

        { //Join Room
            RoomField joinRoomElement = new RoomField("Join Room", "Room Name", "Connect");
            joinRoomElement.OnSubmit += () => JoinRoom(joinRoomElement);
            optionRoot.Add(joinRoomElement);
        }
        optionRoot.Add(InitialiseOption("Back to Main Menu", () =>
        {
            StartAnimation(AnimState.Out, OnComplete: () =>
            {
                Destroy(PUNManager.Instance);
                SceneManager.LoadScene(0);
            });
        }));
    }
Beispiel #2
0
 public void ChangeElement(MainMenuElement type, bool visible)
 {
     switch (type)
     {
     case MainMenuElement.Flag:
         btnFlag.SetActive(visible);
         break;
     }
 }
Beispiel #3
0
    protected override void Start()
    {
        base.Start();

        container = document.rootVisualElement.Q(CONTAINER_ELEMENT_NAME);
        Debug.Assert(container != null, $"{typeof(UIDocument)} did not contain an element with name {CONTAINER_ELEMENT_NAME}", this);


        MainMenuElement pause      = InitialiseNewElement("Pause");
        VisualElement   optionRoot = pause.Q(OPTION_ROOT);

        _currentMenu = pause;
        //container.Add(pause);

        optionRoot.Add(InitialiseOption("Continue", Continue));

        OptionButton exit = InitialiseOption("Save and Exit");

        exit.RegisterCallback <ClickEvent>(e => BackToMain());
        optionRoot.Add(exit);

        Continue();
    }
    protected override void Awake()
    {
        base.Awake();

        { //Main Menu
            mainMenu = InitialiseNewElement(GlobalConstants.NAME_OF_GAME);
            VisualElement optionRoot = mainMenu.Q(OPTION_ROOT);

            optionRoot.Add(InitialiseOption("Single Player", () => CurrentMenu = singlePlayerMenu));
            optionRoot.Add(InitialiseOption("Multi Player", () => SceneManager.LoadScene(1)));
            optionRoot.Add(InitialiseOption("Options", () => CurrentMenu = optionsMenu));
            optionRoot.Add(InitialiseOption("Leaderboard", () => {
                StartAnimation(AnimState.Out, () => SceneManager.LoadScene(2));
            }));
            optionRoot.Add(InitialiseOption("Exit", () => {
                Application.Quit();
            }));
        }

        { //Single Player
            singlePlayerMenu = InitialiseNewElement("Single Player");
            VisualElement optionRoot = singlePlayerMenu.Q(OPTION_ROOT);

            optionRoot.Add(InitialiseOption("New Game", () => StartNewGame()));
            var continueLast = InitialiseOption("Continue Last", () => Continue());
            optionRoot.Add(continueLast);
            optionRoot.Add(InitialiseOption("Back to Main Menu", () => CurrentMenu = mainMenu));

            //Disable continue option if no save exists.
            continueLast.SetEnabled(File.Exists(PlayerState.PLAYER_STATE_PATH));
        }

        { //Options
            optionsMenu = InitialiseNewElement("Options");
            VisualElement optionRoot = optionsMenu.Q(OPTION_ROOT);

            Slider sfxSlider = new Slider("SFX Volume : ", -80f, 10f);
            optionRoot.Add(sfxSlider);
            sfxSlider.RegisterCallback <ChangeEvent <float> >(e =>
            {
                masterMixer.SetFloat("SFX", e.newValue);
            });

            Slider musicSlider = new Slider("Music Volume : ", -80f, 10f);
            optionRoot.Add(musicSlider);
            musicSlider.RegisterCallback <ChangeEvent <float> >(e =>
            {
                masterMixer.SetFloat("Music", e.newValue);
            });

            Toggle fullScreen = new Toggle("Full-screen : ");
            optionRoot.Add(fullScreen);
            fullScreen.value = Screen.fullScreen;
            fullScreen.RegisterCallback <ChangeEvent <bool> >(e =>
            {
                Screen.fullScreen = e.newValue;
            });


            optionRoot.Add(InitialiseOption("Back to Main Menu", () => CurrentMenu = mainMenu));
        }
    }