示例#1
0
    public override bool Load()
    {
        Enemies targetData = target as Enemies;

        var    client = new DatabaseClient("", "");
        string error  = string.Empty;
        var    db     = client.GetDatabase(targetData.SheetName, ref error);
        var    table  = db.GetTable <EnemiesData>(targetData.WorksheetName) ?? db.CreateTable <EnemiesData>(targetData.WorksheetName);

        List <EnemiesData> myDataList = new List <EnemiesData>();

        var all = table.FindAll();

        foreach (var elem in all)
        {
            EnemiesData data = new EnemiesData();

            data = Cloner.DeepCopy <EnemiesData>(elem.Element);
            myDataList.Add(data);
        }

        targetData.dataArray = myDataList.ToArray();

        EditorUtility.SetDirty(targetData);
        AssetDatabase.SaveAssets();

        return(true);
    }
示例#2
0
    public static EnemiesData LoadEnemies()
    {
        //* De donde obtengo la información/datos que quiero recuperar *//
        string path = Application.persistentDataPath + "/enemies.data";

        // Si el archivo enemies.data existe en la ruta Application.persistentDataPath
        if (File.Exists(path))
        {
            // Abro el archivo enemies.data en modo lectura
            FileStream fileStream = new FileStream(path, FileMode.Open);

            // Creo una variable de tipo BinaryFormatter para desrializar el contenido del archivo enemies.data, es decir,
            // convertir una cadena de bytes en tipos y datos que manejar dentro de mis clases y scripts c#
            BinaryFormatter binaryFormatter = new BinaryFormatter();

            // Obtengo los datos del archivo enemies.data en el formato apropiado para poder recuperar los datos guardados.
            EnemiesData data = binaryFormatter.Deserialize(fileStream) as EnemiesData;

            // Cerramos el archivo enemies.data
            fileStream.Close();

            // Devuelvo los datos recuperados para su correspondiente gestión.
            return(data);
        }
        // Si el archivo enemies.data NO existe en la ruta Application.persistentDataPath
        else
        {
            // Al no existir el archivo no podemos recuperar datos, devolvemos nulo.
            return(null);
        }
    }
    public static void SaveEnemies(EnemiesData _EnemiesData)
    {
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        FileStream      saveFile        = File.Create(Application.persistentDataPath + "/EnemySave.dat");

        binaryFormatter.Serialize(saveFile, _EnemiesData);
        saveFile.Close();
    }
示例#4
0
        private void Awake()
        {
            _animator    = GetComponent <Animator>();
            _rigidbodies = GetComponentsInChildren <Rigidbody>();
            SetRagdollState(false);
            SetMainPhysics(true);
            _enemiesData = Data.Instance.EnemiesData;
            _health      = _enemiesData.GetHealth();

            //_uiscore = GameObject.FindWithTag("Score").GetComponent<SetScore>();
        }
示例#5
0
 // Use this for initialization
 void Start()
 {
     prevSceneName          = GameObject.Find("GameManager").GetComponent <GameManager>().prevSceneName;
     string[,] monster_list = EnemiesData.GetMonsterList(prevSceneName);
     if (monster_num == -1)
     {
         monster_num = selectRandomMonster(monster_list);
     }
     string[] monster = EnemiesData.getMonster(prevSceneName, monster_num);
     setEnemyStatus(monster, prevSceneName);
     GameObject.Find("BattleField").transform.Find("LogModal").gameObject.GetComponent <LogController>().printText(new string[] { monster_name + "に" + encountStr[Random.Range(0, encountStr.Length - 1)] }).then(BattleManager.ToggleCommands); // 名前をlogにセット
 }
    public static List <EnemyData> LoadEnemies()
    {
        List <EnemyData> enemiesData = null;

        if (File.Exists(Application.persistentDataPath + "/EnemySave.dat"))
        {
            BinaryFormatter bf   = new BinaryFormatter();
            FileStream      file = File.Open(Application.persistentDataPath + "/EnemySave.dat", FileMode.Open);
            EnemiesData     data = (EnemiesData)bf.Deserialize(file);
            enemiesData = data.Enemies;
            file.Close();
        }
        return(enemiesData);
    }
示例#7
0
    private void InternalSaveEnemies()
    {
        List <EnemyData> enemyData = new List <EnemyData>();

        for (int i = 0; i < m_Enemies.Count; i++)
        {
            enemyData.Add(m_Enemies[i].GetEnemySave());
        }
        EnemiesData enemiesData = new EnemiesData
        {
            Enemies = enemyData
        };

        SaveManager.SaveEnemies(enemiesData);
    }
示例#8
0
    public static void SaveEnemies(GameObject[] enemies)
    {
        string path = Application.persistentDataPath + "/enemies.data";

        FileStream stream = new FileStream(path, FileMode.Create);

        EnemiesData data = new EnemiesData(enemies);

        BinaryFormatter binaryFormatter = new BinaryFormatter();

        // Ejecuta la serialiazción (conversión a una cadena de bytes) y los guarda en el archivo player.data
        binaryFormatter.Serialize(stream, data);

        // Cierra el archivo player.data
        stream.Close();
    }
示例#9
0
    string CallEnemy(out int id)
    {
        string name = "";

        id = -1;
        int chance = Random.Range(1, 100);

        EnemiesData data = GetComponent <EnemiesData>();

        for (int i = data.enemies.Length - 1; i >= 0; i--)
        {
            if (chance <= data.enemies[i].spawnChance)
            {
                name = data.enemies[i].name;
                id   = i;
                break;
            }
        }

        return(name);
    }
示例#10
0
 private void Awake()
 {
     _projectile = _projectilePrefab.GetComponent <CannonProjectile>();
     _enemies    = FindObjectOfType <EnemiesData>();
     _delayShot  = new WaitForSeconds(_shootInterval);
 }
示例#11
0
 void Awake()
 {
     enemiesData = this.gameObject.GetComponent<EnemiesData>();
 }
示例#12
0
 private void Awake()
 {
     _enemies = FindObjectOfType<EnemiesData>();
     _delayShot = new WaitForSeconds(_shootInterval);
 }
示例#13
0
    void OnSceneLoaded(Scene scene, LoadSceneMode loadSceneMode)
    {
        // Si pulsamos load game la variable load game estara a true
        if (loadGame)
        {
            loadGame = false;
            // Cargar datos guardados
            PlayerData playerData = SaveSystem.LoadPlayer();
            if (playerData != null)
            {
                // Obtenemos la referencia del player
                GameObject player = GameObject.FindGameObjectWithTag("Player");

                // Cogemos el valor de vida guardado y lo escribimos en las variables relacionadas con la vida
                player.GetComponent <PlayerHealth>().currentHealth  = playerData.health;
                player.GetComponent <PlayerHealth>().startingHealth = playerData.health;
                GameObject.FindGameObjectWithTag("SliderHealth").GetComponent <Slider>().value = playerData.health;

                // Coger el valor de la posicion y la rotacion y se lo ponemos al Player
                player.gameObject.transform.position = new Vector3(playerData.position[0], playerData.position[1], playerData.position[2]);
                player.gameObject.transform.rotation = Quaternion.Euler(playerData.rotation[0], playerData.rotation[1], playerData.rotation[2]);

                // Cargar valor de puntuacion
                ScoreManager.score = playerData.score;
                GameObject.FindGameObjectWithTag("Score").GetComponent <Text>().text = playerData.score.ToString();

                // Cargar los valores de la camara
                GameObject camera = GameObject.FindGameObjectWithTag("MainCamera");

                camera.gameObject.transform.position = new Vector3(playerData.positionCamera[0],
                                                                   playerData.positionCamera[1], playerData.positionCamera[2]);

                camera.gameObject.transform.rotation.Set(playerData.rotationCamera[0],
                                                         playerData.rotationCamera[1], playerData.rotationCamera[2], playerData.rotationCamera[3]);
            }
            else
            {
                Debug.Log("SaveLoadManager;;OnSceneLoaded::playerData NULL");
            }

            // Cargar
            EnemiesData enemiesData = SaveSystem.LoadEnemies();

            if (enemiesData != null)
            {
                int numeroEnemigos = enemiesData.tipoEnemigo.Length;

                for (int i = 0; i < numeroEnemigos; i++)
                {
                    // Obtener una referencia a GameObject que quier instanciar, se encuentra en enemy manager
                    GameObject[] enemiesFromEnemyManager = GameObject.FindObjectOfType <EnemyManager>().enemies;

                    for (int j = 0; j < enemiesFromEnemyManager.Length; j++)
                    {
                        if (enemiesData.tipoEnemigo[i].Contains(enemiesFromEnemyManager[j].name))
                        {
                            Instantiate(
                                enemiesFromEnemyManager[j],
                                new Vector3(enemiesData.position[i][0], enemiesData.position[i][1], enemiesData.position[i][2]),
                                Quaternion.Euler(enemiesData.rotation[i][0],
                                                 enemiesData.rotation[i][1],
                                                 enemiesData.rotation[i][2])
                                );
                        }
                    }
                }
            }
            else
            {
                Debug.Log("SaveLoadManager::OnSceneLoaded::enemiesData Null", this.gameObject);
            }
        }
    }
示例#14
0
    // Use this for initialization
    void Start()
    {
        if (GameObject.Find("GameManager").GetComponent <GameManager>().bosses != null && GameObject.Find("GameManager").GetComponent <GameManager>().bosses.Contains(EnemiesData.getMonster(SceneManager.GetActiveScene().name, monster_num)[1]))
        {
            Destroyer();
        }
        else
        {
            switch (EnemyController.monster_name) //戦闘終了後に呼び出したい処理を書く。逃げれない敵を指定すれば倒した後の処理となる。Endingへの遷移、倒した後の敵の命乞い等役立ててください。
            {
            case "ぬし":
                LogController.logController.printTextByFileName("west/boss2.txt").then(Destroyer);
                GameObject.Find("GameManager").GetComponent <GameManager>().bosses.Add("ぬし");
                break;

            case "上級でんだいせい":
                LogController.logController.printTextByFileName("d22/boss2.txt").then(Destroyer);
                GameObject.Find("GameManager").GetComponent <GameManager>().bosses.Add("上級でんだいせい");
                break;

            case "がっかたんとう":
                LogController.logController.printTextByFileName("d1/boss2.txt").then(Destroyer);
                GameObject.Find("GameManager").GetComponent <GameManager>().bosses.Add("がっかたんとう");
                break;

            case "GOD":
                LogController.logController.printTextByFileName("d1/GOD2.txt").then(Destroyer);
                GameObject.Find("GameManager").GetComponent <GameManager>().bosses.Add("GOD");
                break;

            case "マスクドADACHI":
                LogController.logController.printTextByFileName("d1/Last2.txt").then(Callback1);
                GameObject.Find("GameManager").GetComponent <GameManager>().bosses.Add("GOD");
                break;
            }
        }
    }