Ejemplo n.º 1
0
        /// <summary>
        /// Subscribe this function to an onready changed event to get info on new status and scene
        /// to act accordingly
        /// </summary>
        /// <param name="scene"></param>
        /// <param name="ready"></param>
        private void OnReadyStatusChanged(MultiplayerRacerScenes scene, bool ready)
        {
            if (scene != MultiplayerRacerScenes.GAME)
            {
                return;
            }

            PV.RPC("UpdateReadyStatus", RpcTarget.AllViaServer, InRoomManager.Instance.NumberInRoom, ready);
        }
        /// <summary>
        /// Returns a UI script based on current scene
        /// </summary>
        /// <param name="scene"></param>
        /// <returns></returns>
        public MultiplayerRacerUI GetCanvasReference(MultiplayerRacerScenes scene)
        {
            switch (scene)
            {
            case MultiplayerRacerScenes.LOBBY:
                return(GameObject.FindGameObjectWithTag("Canvas")?.GetComponent <LobbyUI>());

            case MultiplayerRacerScenes.GAME:
                return(GameObject.FindGameObjectWithTag("Canvas")?.GetComponent <GameUI>());
            }
            return(null);
        }
Ejemplo n.º 3
0
        private void OnSceneHasReset(MultiplayerRacerScenes scene)
        {
            if (scene != MultiplayerRacerScenes.GAME)
            {
                return;
            }

            //reset car spawns
            roadOn.ResetCarSpawns();

            //re-setup car spawns getting our new car spawn and placing the car on it
            myCarSpawn = SetupCarSpawns();
            myCar.transform.position = myCarSpawn.transform.position;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// should be called when the scene resets, resets rigidbody of car
        /// </summary>
        /// <param name="scene"></param>
        private void OnRacerReset(MultiplayerRacerScenes scene)
        {
            if (scene != MultiplayerRacerScenes.GAME)
            {
                return;
            }

            if (RB != null)
            {
                RB.velocity        = Vector2.zero;
                RB.angularVelocity = 0;
                RB.rotation        = 0;
            }

            canRace = false;
        }
Ejemplo n.º 5
0
        private void AttachUI(MultiplayerRacerScenes scene)
        {
            switch (scene)
            {
            case MultiplayerRacerScenes.LOBBY:
                UI = GameObject.FindGameObjectWithTag("Canvas")?.GetComponent <LobbyUI>();
                ((LobbyUI)UI).SetupConnectButton(OnConnectButtonClick);
                break;

            case MultiplayerRacerScenes.GAME:
                UI = GameObject.FindGameObjectWithTag("Canvas")?.GetComponent <GameUI>();
                break;

            default:
                break;
            }
        }
Ejemplo n.º 6
0
        private void MaxPlayersReadyCheck(MultiplayerRacerScenes scene)
        {
            switch (scene)
            {
            case MultiplayerRacerScenes.LOBBY:
                //we can only start if the maxium amount of players in the lobby are ready
                if (Master.PlayersReady != PhotonNetwork.CurrentRoom.MaxPlayers)
                {
                    return;
                }
                break;

            case MultiplayerRacerScenes.GAME:
                //we can only start racing if all players in the games scene are ready
                if (Master.PlayersReady != Master.PlayersInGameScene)
                {
                    return;
                }
                break;
            }

            //countdown can start
            PV.RPC("StartCountdown", RpcTarget.AllViaServer);
        }