private void RemoveFromList(PlayerController _playerController)
 {
     if (listOfPlayerControllers.Contains(_playerController))
     {
         listOfPlayerControllers.Remove(_playerController);
         playerMainCamera.Remove(_playerController.GetMainCamera());
     }
     else
     {
         // Debug.Log("player doesn't exist in list");
         return;
     }
 }
        public void DestroyPlayer(PlayerController _playerController)
        {
            RemoveFromList(_playerController);
            playerMainCamera.Remove(_playerController.GetMainCamera());
            _playerController.DestroySelf();

            _playerController = null;

            if (listOfPlayerControllers.Count == 0)
            {
                playerMainCamera.Clear();
                GameApplication.Instance.GetService <ISceneLoader>().OnReplay();
            }
        }
        private void SetupCameras(PlayerController _controller, int _id)
        {
            GameObject miniMapInstance = GameObject.Instantiate(miniMapCameraPrefab.gameObject) as GameObject;

            var       mcam = miniMapInstance.GetComponent <MiniMapSetup>();
            Transform t    = _controller.GetFollowTarget();

            mcam.SetupTarget(t);
            miniMapInstance.GetComponent <MiniMapSetup>().SetRenderTexture(_id);
            Camera _mainCamera = _controller.GetMainCamera();

            playerMainCamera.Add(_mainCamera);
            if (playerMainCamera[_id] != null)
            {
                playerMainCamera[_id].rect = new Rect((1f / noOfPlayers) * _controller.GetID(), 0, 1f / noOfPlayers, 1);
            }
        }