Creare Videogiochi - Game Developer
Scelta livelli in menu iniziale..?? Domanda.. - Versione stampabile

+- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi)
+-- Forum: Unity3D Italia (https://www.making-videogames.net/giochi/Forum-Unity3D-Italia)
+--- Forum: Richieste di Aiuto per Unity 3D (https://www.making-videogames.net/giochi/Forum-Richieste-di-Aiuto-per-Unity-3D)
+--- Discussione: Scelta livelli in menu iniziale..?? Domanda.. (/thread-Scelta-livelli-in-menu-iniziale-Domanda)



Scelta livelli in menu iniziale..?? Domanda.. - Biagino - 07-11-2014

Ciao ragazzi..

Nel mio gioco, vorrei creare una scelta livelli che consiste nella classica pagina piena di quadrati, per aprire la 2* bisogna completare la prima e così via.. Voleva provare a mettere uno script, però o pensato che il gioco non salverà, e quindi bisogna iniziare ogni volta da capo.. Sapeste dirmi come risolvere il problema??

Grazie mille!! Smile


RE: Scelta livelli in menu iniziale..?? Domanda.. - Blackg96 - 07-11-2014

(07-11-2014, 02:43 PM)Biagino Ha scritto: Ciao ragazzi..

Nel mio gioco, vorrei creare una scelta livelli che consiste nella classica pagina piena di quadrati, per aprire la 2* bisogna completare la prima e così via.. Voleva provare a mettere uno script, però o pensato che il gioco non salverà, e quindi bisogna iniziare ogni volta da capo.. Sapeste dirmi come risolvere il problema??

Grazie mille!! Smile

Allora non è una cosa semplice da spiegare ci proverò Wink

Primo passo creare una classe che contenga un nome, un numero identificativo, un numero per sbloccare il livello ed la scena da caricare

Codice:
using UnityEngine;
using System.Collections;

[System.Serializable]
public class Level
{
    public string Name;
    public int UnlockId;
    public string sceneLoadName;
}

dopodichè devi creare un script che contiente le statistiche del player

Codice:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class PlayerStats : MonoBehaviour
{

    public int unlockedLevel;
    public List<Level> Level_List = new List<Level>();


    void Start()
    {
        unlockedLevel = PlayerPrefs.GetInt("levelUnlocked");
    }

    void OnGUI()
    {
        foreach (Level l in Level_List)
        {
            if (l.UnlockId == unlockedLevel)
            {
                if (GUILayout.Button(l.Name))
                {
                    Application.LoadLevel(l.sceneLoadName);
                }
            }
        }
    }
}

Ogni quando si arriva a fine livello dovrai inserire la riga di codice :
int currentLevel = PlayerPrefs.GetInt("levelUnlocked");
PlayerPrefs.SetInt("levelUnlocked", currentLevel + 1);

Spero d'essere stato d'aiuto Smile