Exemplo n.º 1
0
    // Start is called before the first frame update
    void Start()
    {
        Transform         characterTransform;
        List <GameObject> instances = new List <GameObject>();
        GameObject        ins;

        // 味方パーティーのプレハブをインスタンス化
        for (int i = 0; i < battleData.GetAllyPartyStatus().GetAllyGameObject().Count; i++)
        {
            characterTransform = battleBasePosition.Find("AllyPos" + i).transform;
            ins = Instantiate <GameObject>(battleData.GetAllyPartyStatus().GetAllyGameObject()[i], characterTransform.position, characterTransform.rotation);
            allCharacterList.Add(ins);
        }
        // 敵パーティーのプレハブをインスタンス化
        for (int i = 0; i < battleData.GetMonsterPartyStatus().GetMonsterGameObjectList().Count; i++)
        {
            characterTransform = battleBasePosition.Find("MonsterPos" + i).transform;
            ins = Instantiate <GameObject>(battleData.GetMonsterPartyStatus().GetMonsterGameObjectList()[i], characterTransform.position, characterTransform.rotation);
            allCharacterList.Add(ins);
        }
    }
Exemplo n.º 2
0
    // Start is called before the first frame update
    void Start()
    {
        ShowMessage("戦闘開始");
        // キャラクターインスタンスの親
        charactersParent = new GameObject("Characters").transform;
        // キャラクターを配置するTransform
        Transform characterTransform;
        // 同じ名前の敵がいた場合の処理に使うリスト
        List <string> enemyNameList = new List <string>();

        GameObject      ins;
        CharacterBattle characterBattleScript;
        string          characterName;

        // 味方パーティーのプレハブをインスタンス化
        for (int i = 0; i < battleData.GetAllyPartyStatus().GetAllyGameObject().Count; i++)
        {
            characterTransform = battleBasePosition.Find("AllyPos" + i).transform;
            ins = Instantiate <GameObject>(battleData.GetAllyPartyStatus().GetAllyGameObject()[i], characterTransform.position, characterTransform.rotation, charactersParent);
            characterBattleScript = ins.GetComponent <CharacterBattle>();
            ins.name = characterBattleScript.GetCharacterStatus().GetCharacterName();
            if (characterBattleScript.GetCharacterStatus().GetHp() > 0)
            {
                allyCharacterInBattleList.Add(ins);
                allCharacterList.Add(ins);
            }
        }

        // 敵パーティーのプレハブをインスタンス化
        for (int i = 0; i < battleData.GetEnemyPartyStatus().GetEnemyGameObjectList().Count; i++)
        {
            characterTransform = battleBasePosition.Find("EnemyPos" + i).transform;
            ins = Instantiate <GameObject>(battleData.GetEnemyPartyStatus().GetEnemyGameObjectList()[i], characterTransform.position, characterTransform.rotation, charactersParent);
            // 既に同じ敵が存在したら文字を付加する
            characterName = ins.GetComponent <CharacterBattle>().GetCharacterStatus().GetCharacterName();
            if (!enemyNameList.Contains(characterName))
            {
                ins.name = characterName + 'A';
            }
            else
            {
                ins.name = characterName + (char)('A' + enemyNameList.Count(enemyName => enemyName == characterName));
            }
            enemyNameList.Add(characterName);
            enemyCharacterInBattleList.Add(ins);
            allCharacterList.Add(ins);
            //EnemyStatusのSetEnemyNumberにアクセスしてる
            ((EnemyStatus)ins.GetComponent <CharacterBattle>().GetCharacterStatus()).SetEnemyName(ins.name);
        }
        // キャラクターリストをキャラクターの素早さの高い順に並べ替え
        allCharacterList = allCharacterList.OrderByDescending(character => character.GetComponent <CharacterBattle>().GetCharacterStatus().GetAgility()).ToList <GameObject>();
        // 現在の戦闘
        allCharacterInBattleList = allCharacterList.ToList <GameObject>();
        // 確認の為並べ替えたリストを表示

        /*foreach (var character in allCharacterInBattleList)
         * {
         *  Debug.Log(character.GetComponent<CharacterBattle>().GetCharacterStatus().GetCharacterName() + " : " + character.GetComponent<CharacterBattle>().GetCharacterStatus().GetAgility());
         * }*/
        // 戦闘前の待ち時間を設定
        waitTime = firstWaitingTime;
        // ランダム値のシードの設定
        Random.InitState((int)Time.time);

        yusyaObjct = GameObject.Find("ゆうしゃ");
    }