Ejemplo n.º 1
0
    // 파라메터로 받은 라운드의 웨이브 생성
    public void GenerateWave(int waveNumber)
    {
        Wave wave = waveList[waveNumber];
        Debug.Log(wave.Debug());

        if (wave != null && wave.IsNext()){
            // 프리팹 생성을 위한 값 할당
            WaveMember member = wave.GetWaveMemberByCounter();

            if (member.IsNext()){
                // 맴버 이름으로 prefabList에서 게임오브젝트(프리팹)을 받아온다
                GameObject gameObject = prefabList.GetGameObjectByName (member.name);
                Quaternion angle = new Quaternion(0, 0, 0, 0);

                //프리팹 생성 & 이름 설정
                prefab = Instantiate(gameObject, member.location, angle) as GameObject;
                prefab.name = prefab.name + (member.counter + 1);

                // 맴버의 카운터 증가.
                member.IncreaseCounter();

                //타겟팅에 추가하기 위한 타겟정보
                GameObject enemy = prefab;

                // 모든 플레이어의 Targetting 컴포넌트에 생성된 오브젝트 추가 및 정렬
                for(int i=0; i<playerList.Count; i++){
                    TargettingManager tg = playerList[i].GetComponent<TargettingManager>();
                    tg.AddTarget(enemy);
                    tg.SortTargetByDistance();

                    //if (i == 0)
                        //tg.TargetEnemy();
                }

                // 맴버 생성이 모두 완료되면, 웨이브 카운트 증가
                if (!member.IsNext())
                    wave.IncreaseCount();

                prefab = null;
                // 생성 타이머를 0f로 초기화
                timeCounter = 0f;
            }
        }
    }
Ejemplo n.º 2
0
 // 웨이브에 웨이브 맴버 추가
 public void AddWaveMember(WaveMember wm)
 {
     memberList.Add(wm);
 }