Пример #1
0
    /// <summary>
    /// Apre un pannello per selezionare la configurazione (ed il dataset) da utilizzare nella cartella MyDataset
    /// </summary>
    public static void OpenPanel()
    {
        //  Naviga fino alla cartella contenente tutti i datasets
        var tmp = FileUtils.GeneratePath().Split('/').ToList();

        tmp.Remove(tmp.Last());
        tmp.Remove(tmp.Last());

        var tmp_path = "";

        foreach (var item in tmp)
        {
            tmp_path += item + '/';
        }

        //  Apre il pannello
        var paths = StandaloneFileBrowser.OpenFolderPanel("Change Dataset", tmp_path, false);

        if (paths.Length > 0)
        {
            var path = paths.Last().Split('\\').ToList().Last();

            if (path.Length != 0)
            {
                FileUtils.selectedDataset = paths.Last().Split('\\').ToList().Last();

                //Popola matrici della rete neurale con la nuova configurazione
                TestML.Populate();
            }
        }

        //  Controlla l'esistenza dei file necessari per suonare
        FileUtils.CheckForDefaultFiles();
    }
Пример #2
0
    /// <summary>
    /// Chiamato quando viene inizializzato un oggetto contenente lo script _GM.cs
    /// </summary>
    private void Awake()
    {
        /*
         * In unity, possono essere caricati nella build solo determinati tipi di file. File .txt vengono copiati all'interno della cartella
         * della build.
         * In questo modo riusciamo ad avere lo script .py (che in questo momento è un file .txt) all'interno della build.
         * Dunque, leggiamo il file .txt dalla cartella Resources, e usaando il metodo SavePy, salviamo lo script letto dal file .txt
         * in un file ad estensione .py. Questo file potrà poi essere lanciato su linea di comando.
         */

        string nameFile = "ML";                                           //  Nome dello script python.
        var    MLFile   = Resources.Load <TextAsset>("Text/" + nameFile); //  Carica lo script dalla cartella Resources di Unity(file .txt)

        FileUtils.SavePy(MLFile.bytes, MLFile.name);                      //  Converte il file .txt in script .py

        currentScene = SceneManager.GetActiveScene();                     //  Prende la scena correntemente attiva


        switch (currentScene.buildIndex)
        {
        case (0):
            currSceneEnum = SceneEnum.Mainpage;
            break;

        case (1):
            currSceneEnum = SceneEnum.PlayScene;
            break;

        case (2):
            currSceneEnum = SceneEnum.TrainingScene;
            break;

        case (3):
            currSceneEnum = SceneEnum.TestingScene;
            break;
        }

        //  Caso in cui la scena corrente è la scena mainpage(Mainpage)
        if (currSceneEnum == SceneEnum.Mainpage)
        {
        }

        //  Caso in cui la scena corrente è la scena per suonare (PlayScene)
        if (currSceneEnum == SceneEnum.PlayScene)
        {
            TestML.Populate();                                              //  Effettua il caricamento dei file necessari per la scena PlayScene
        }

        // Se la scena corrente è la scena di training (TrainingScene)
        if (currSceneEnum == SceneEnum.TrainingScene)
        {
            if (TestML.Populate())                                          //  Restituisce true se trova i file weights.txt e bias.txt
            {
                SetLearnStatus(true);                                       //  Segnala che è stato effettuato il Learning sul dataset selezionato
                UpdateLatestLearningDate();                                 //  Aggiorna il testo contente la data dell'ultimo training effettuato sul dataset selezionato
            }
            else
            {
                SetLearnStatus(false);                                      //  Segnala che non è stato effettuato il trianing sul dataset selezionato
            }
        }

        // Se la scena corrente è la scena di testing (TestingScene)
        if (currSceneEnum == SceneEnum.TestingScene)
        {
            TestML.Populate();
        }
    }