Ошибка error CS1061 unity 2d.Спавн объекта из папки Ресурсы

Assets\Scripts\GameContoller.cs(29,73): error CS1061: 'GameObject[]' does not contain a definition for 'ToList' and no accessible extension method 'ToList' accepting a first argument of type 'GameObject[]' could be found (are you missing a using directive or an assembly reference?) Полная ошибка.

Не могу понять в чем проблема, почему ему не нравиться ToList()?

using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameContoller : MonoBehaviour { public enum GameState { START, PLAY, LOSE, GAME_OVER}; public event System.Action<GameState> OnStateChanged; private GameState state; [SerializeField] private Transform levelRegion = null; [SerializeField] private Level LevelPrefab = null; [SerializeField] private List<Color> colors = new List<Color>(); private List<Level> levels = new List<Level>(); private List <GameObject> ObstaclePrefabs ; public GameState State { get => state; set { state = value; OnStateChanged?.Invoke(state);} } public static GameContoller Instance; [SerializeField] private Transform spawnRegion; private void Awake() { Instance = this; } private void Start() { ObstaclePrefabs = Resources.LoadAll<GameObject>("GroupObstacles").ToList(); for (int i=0; i<2;i++) { levels.Add(SpawnNewLevel1()); } ResetLevels(); } private void ResetLevels() { levels[0].AnchoredPosition = new Vector3(0, -levels[0].Size.y / 2); for ( int i = 1; i < levels.Count; i ++) { levels[i].AnchoredPosition = new Vector3(0, levels[i - 1].AnchoredPosition.y + levels[ i- 1].Size.y); } } private Level SpawnNewLevel1() { Level level = Instantiate(LevelPrefab, Vector3.zero, Quaternion.identity, levelRegion); level.AnchoredPosition =Vector3.zero; level.BackColor = colors[UnityEngine.Random.Range(0, colors.Count)]; level.Size = new Vector2 (levelRegion.parent.GetComponent<RectTransform>().sizeDelta.x, levelRegion.parent.GetComponent<RectTransform>().sizeDelta.y * 2 ); //level.Size = new Vector2(levelRegion.parent.GetComponent<RectTransform>().sizeDelta.x, levelRegion.parent.GetComponent<RectTransform>().sizeDelta.y * 2 ); return level; } public void StartGame() { State = GameState.PLAY; SpawnObstacle(ObstaclePrefabs[UnityEngine.Random.Range(0, ObstaclePrefabs.Count)], spawnRegion); } private void SpawnObstacle(GameObject gameObject, Transform spawnRegion) { Instantiate(gameObject, spawnRegion.transform.position, Quaternion.identity, spawnRegion); } }
33
4 комментария

using System.Linq;

2
Ответить

Благодарен за ответ, все заработало, почему то нигде не нашел инфы, что нужна эта библиотека.

Ответить

почему то нигде не нашел инфы, что нужна эта библиотека.

https://docs.microsoft.com/ru-ru/dotnet/api/system.linq.enumerable.tolist?view=net-6.0

Пространство имен: System.Linq Сборка: System.Linq.dll

Ответить

Если используешь Visual Studio, то поставь курсор мыши на место где ругается используй иконку лампочки или нажми Ctrl + . и покажет что нужно импортировать.

Ответить