Привет, я сейчас разрабатываю игру в Unity, и по какой-то причине у меня возникла небольшая проблема: четвертая сцена, которую я создаю (уровень 3), застревает и не завершает загрузку, что не позволяет моей игре перейти со сцены 2 (уровень 2) на сцена 3 (Уровень 3). У меня есть сценарий диспетчера сцен, который управляет этими переходами, и он отлично работает для всех других переходов между сценами, за исключением случая, описанного выше. Кто-нибудь знает, что я делаю не так? Ниже вы увидите код, отвечающий за обработку переходов между сценами:
Это мой скрипт менеджера сцен, отвечающий за аддитивную загрузку и выгрузку сцен:
public static class MySceneManager
{
private static int lastLoadedScene = 0;
public static void LoadScene(int index, MonoBehaviour caller)
{
ObjectPooler objP = new ObjectPooler();
objP.ReleaseAll();
caller.StartCoroutine(loadNextScene(index));
}
private static IEnumerator loadNextScene(int index)
{
var _async = SceneManager.LoadSceneAsync(index, LoadSceneMode.Additive);
_async.allowSceneActivation = false;
while (_async.progress < 0.9f)
{
yield return null;
}
_async.allowSceneActivation = true;
while (!_async.isDone)
{
yield return null;
}
var newScene = SceneManager.GetSceneByBuildIndex(index);
if (!newScene.IsValid()) yield break;
SceneManager.SetActiveScene(newScene);
if (lastLoadedScene >= 0) SceneManager.UnloadSceneAsync(lastLoadedScene);
lastLoadedScene = index;
}
}
Это сценарий, из которого я вызываю переход сцены:
public class HeartScript : MonoBehaviour
{
int HeartEnter = 1;
void Start()
{
DontDestroyOnLoad(this.gameObject);
}
void OnTriggerEnter2D(Collider2D other)
{
Scene scene = SceneManager.GetActiveScene();
if (other.gameObject.CompareTag("White Ball"))
{
if (HeartIndicator.numOfHearts < 3)
{
Debug.Log("Entered COLLIDER");
HeartIndicator.numOfHearts += 1;
}
if(scene.name == "Level 2" && HeartEnter == 1)
{
MySceneManager.LoadScene(3, this);
HeartEnter++;
}
this.gameObject.SetActive(false);
}
}
}
Unity
из заголовка, если бы мог, потому что это тег и уже отмечен в тегах, но ваш заголовок считается плохим (вероятно, дубликатом) Stack Overflow, что указывает на то, что вы не смотрели на возможные дубликаты. - person Draco18s no longer trusts SE   schedule 06.11.2019