Теперь я понимаю, что этот вопрос часто задают, и уверяю вас, что я провел много поисков по этому вопросу, попробовал несколько сценариев и попробовал сериализатор из хранилища активов Unity. но я просто не могу найти то, что мне нужно.
следующий уровень открывается только после прохождения предыдущего, поэтому он должен помнить, какие уровни были пройдены/разблокированы, и при загрузке вы можете выбрать любой из разблокированных уровней, также необходимо запомнить наивысший балл на каждом уровне и заменить его только в том случае, если новая оценка выше, более низкие оценки не нужно сохранять.
то, что я постоянно находил в гугле, это то, как сохранить все объекты и вещи, которые произошли на уровне, но мне не нужно сохранение на уровне, мои уровни очень короткие, и их нужно пройти за один раз.
РЕДАКТИРОВАТЬ: это скрипт, в котором я бы добавил 1 к levelIndex после того, как игрок пройдет уровень, и моя цель - после того, как игрок нажмет кнопку загрузки в меню запуска, появится новое меню, и игрок сможет выбирать из всех разблокированных уровни и после выбора уровень загрузится.
(то, что у меня сейчас есть по этому вопросу, находится в // строках)
#pragma strict
var normalParticle : ParticleSystem;
var teleportParticle : ParticleSystem;
var teleportSound : AudioClip;
var ignoreListenerPause: boolean;
// var levelIndex : int;
function Start() {
teleportParticle.Stop();
}
function OnTriggerEnter(other : Collider)
{
if(other.tag == "Player"){
teleportParticle.Play();
normalParticle.Stop();
for (var o : GameObject in GameObject.FindGameObjectsWithTag("Virus"))
{
var comp : Component = o.GetComponent(ChaseScript);
if (comp != null)
{
comp.active = false;
}
}
yield WaitForSeconds (0.5);
audio.ignoreListenerPause = true;
audio.PlayOneShot(teleportSound);
yield WaitForSeconds (3.9);
//levelIndex++;
//PlayerPrefs.SetInt("Last_Level", levelIndex);
Application.LoadLevel(Application.loadedLevel+1);
}
}
function OnTriggerExit(other : Collider)
{
teleportParticle.Stop();
normalParticle.Play();
}
Ранее я нашел учебник, объясняющий, как добиться того, чего я хотел, но это неэффективно для игры с большим количеством уровней, он использует сценарий для каждого пройденного уровня и использует if для каждого отдельного уровня, и в моей игре было бы около 50, так что я бы предпочел лучше/чище вот видео: http://forum.unity3d.com/threads/unity-level-unlocking-system-using-playerprefs.146955/. вы можете увидеть его сценарии в 10:10 и 14:14.
заранее спасибо :)