Indexoutofrangeexception: индекс находился за пределами массива. Gamemanager.start () (at assets/! adnan/_scripts/manager/gamemanager.cs:42)
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; public class GameManager : MonoBehaviour { #region Instance. public static GameManager Instance { get { if (instance == null) { GameObject go = new GameObject(); go.AddComponent<GameManager>(); instance = go.GetComponent<GameManager>(); } return instance; } } private static GameManager instance; #endregion public Transform Player; public bool IsLevelCompleted; public GameObject[] levels; public int CurrentLevelNo; private void Awake() { instance = this; } private void Start() { CurrentLevelNo = PlayerPrefs.GetInt(Prefs.CurrentLevelNo, 0); Player = GameObject.FindGameObjectWithTag(Tags.Player).transform; Player = FindObjectOfType<RCC_CarControllerV3>().transform; Debug.Log(levels); levels[CurrentLevelNo].SetActive(true); } #region LevelPassed. public UnityEvent LevelPassedEvents; public UnityEvent LevelFailedEvents; public void FncLevelPassed(bool isPassed) { if (!IsLevelCompleted) { IsLevelCompleted = true; if (isPassed) { CurrentLevelNo += 1; if (CurrentLevelNo > levels.Length) CurrentLevelNo = levels.Length - 1; //CurrentLevelNo = Mathf.Clamp(CurrentLevelNo, 0, levels.Length); PlayerPrefs.SetInt(Prefs.CurrentLevelNo, CurrentLevelNo); if (LevelPassedEvents != null && LevelPassedEvents.GetPersistentEventCount() > 0) { LevelPassedEvents.Invoke(); } } else { if (LevelFailedEvents != null && LevelFailedEvents.GetPersistentEventCount() > 0) { LevelFailedEvents.Invoke(); } } } } #endregion }
Что я уже пробовал:
Дорогие все,
У меня есть вопрос, который я получил ниже сообщения об ошибке…
Назначение : индекс находился за пределами массива.
Как я могу это исправить? извините за расплывчатый вопрос но с моими способностями это лучшее что я мог бы описать подробно…