public void GeneratePlayerAndOpponents()
        {
            var roads = new int[_roadCount];

            for (var i = 0; i < roads.Length; i++)
            {
                roads[i] = i;
            }
            roads = roads.Shuffle();
            var isTutorial   = PlayerDataHolder.GetTutorial() == 0;
            var playerRoadId = isTutorial ? 2 : roads[UnityEngine.Random.Range(0, _roadCount)];

            SpawnPlayer(playerRoadId);
            var opponentsSkinsId = new List <int>();

            for (var i = 0; i < SkinDataHolder.GetPlayerSkinData().opponents.Count; i++)
            {
                if (i != SkinnController.currentSkin)
                {
                    opponentsSkinsId.Add(i);
                }
            }
            for (var i = 0; i < _roadCount; i++)
            {
                if (i != playerRoadId)
                {
                    SpawnEnemy(i, opponentsSkinsId);
                }
            }
        }
 private void LoadMenuSkinns()
 {
     savedSkinns = SkinDataHolder.GetPlayerSkinData().players;
     if (skinns.Count != savedSkinns.Count)
     {
         print($"skinns {skinns.Count} savedSkinns {savedSkinns.Count}");
         Debug.LogError("Skins count in skinns data not equal to skinns couns in skinn controller");
         return;
     }
 }
        private IEnumerator Start()
        {
            _playerPrefab = SkinDataHolder.GetPlayerSkinData().players[SkinnController.currentSkin].PlayerHolder;
            _opponents    = new List <GameObject>();
            //for (var i = 0; i < SkinDataHolder.GetPlayerSkinData().opponents.Count; i++) _opponents.Add(SkinDataHolder.GetPlayerSkinData().opponents[i].PlayerHolder);
            _opponents.AddRange(SkinDataHolder.GetPlayerSkinData().opponents.Select(t => t.PlayerHolder));
            yield return(null);

            _roadCount = DataHolder.GetRoadCount();
            GeneratePlayerAndOpponents();
            PauseController.SetPause();
        }