При случайной загрузке сцены вы забыли добавить режим
LoadSceneMode.Additive
Таким образом, вы загружаете сцену в одиночном режиме
Также: имейте в виду, что вы получаете int в случайном диапазоне, так что он будет загрузить номер сцены в настройках сборки. Звоните
UnityEngine.Random.Range(0, 6).ToString()
для загрузки по имени сцены
И в вашем случайном загрузчике вы не сохраняете
_lastScene
и заполняете
_sceneCounter
неправильно. Поэтому вы должны сделать что-то вроде этого:
if (Input.GetKeyDown(KeyCode.P))
{
// This can be cleaner, just for logic to not load current scene
int randomScene = UnityEngine.Random.Range(0, 6);
while (_sceneCounter == randomScene)
{
randomScene = UnityEngine.Random.Range(0, 6);
}
_sceneCounter = randomScene;
SceneManager.LoadSceneAsync(_sceneCounter.ToString(), LoadSceneMode.Additive);
_lastScene = SceneManager.GetSceneByName(_sceneCounter.ToString());
SceneUnloader();
}