Ошибка 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);
}
}
using System.Linq;
Благодарен за ответ, все заработало, почему то нигде не нашел инфы, что нужна эта библиотека.
почему то нигде не нашел инфы, что нужна эта библиотека.
https://docs.microsoft.com/ru-ru/dotnet/api/system.linq.enumerable.tolist?view=net-6.0
Пространство имен: System.Linq Сборка: System.Linq.dll
Если используешь Visual Studio, то поставь курсор мыши на место где ругается используй иконку лампочки или нажми Ctrl + . и покажет что нужно импортировать.