Exemple #1
0
    void PrepareForBattle(Dictionary <int, GameObject> tSquadGameObjDic, List <SquadData> tSquadDataList)
    {
        Quaternion mBornQuRed  = Quaternion.LookRotation(Vector3.left, Vector3.up);
        Quaternion mBornQuBlue = Quaternion.LookRotation(Vector3.right, Vector3.up);

        for (int j = 0; j < tSquadDataList.Count; j++)
        {
            GameObject tSquad = Instantiate(mSquadAsset) as GameObject;
            tSquad.transform.position = BattleFunction.SetPosition(tSquadDataList[j].GetBornPosionX(), tSquadDataList[j].GetBornPosionZ());
            if (tSquadDataList[j].GetSquadCamp() == SquadCamp.CampRed)
            {
                tSquad.transform.rotation = mBornQuRed;
            }
            else
            {
                tSquad.transform.rotation = mBornQuBlue;
            }

            GameObject tSquadAim = Instantiate(mAimAsset) as GameObject;
            tSquadAim.transform.position = tSquad.transform.position;

            SquadController tSquadController = tSquad.GetComponent <SquadController>();
            tSquadController.SetmOriginalAim(tSquadAim.transform);
            tSquadController.SetSquadData(tSquadDataList[j]);
            for (int i = 0; i < tSquadDataList[j].GetUnitCount(); i++)
            {
                GameObject tUnit = Instantiate(tSquadDataList[j].UnitAsset) as GameObject;
                tUnit.transform.rotation = tSquad.transform.rotation;

                UnitController tUnitController = tUnit.GetComponent <UnitController>();

                GameObject tUnitAim = Instantiate(mAimAsset) as GameObject;

                tUnitController.GetUnitData().SetInfor(tSquadDataList[j].GetUnitTemplateID());
                tUnitController.SetmOriginalAim(tUnitAim.transform);
                tUnitController.SetmArrowAsset(tSquadDataList[j].UnitArrowAsset);
                tUnitController.SquadTransform = tSquad.transform;

                tSquadController.GetUnitControllerList().Add(tUnit.transform);
            }

            //tSquadController.GetSquadData().SkillAsset = mSkillAsset;
            tSquadGameObjDic.Add(tSquadDataList[j].GetID(), tSquad);

            tSquadController.FormationStrategy();

            for (int i = 0; i < tSquadDataList[j].GetUnitCount(); i++)
            {
                tSquadController.GetUnitControllerList()[i].GetComponent <UnitController>().EmbattingSetPos(tSquad.transform.position);
            }
        }
    }