void WaveClear() { WAVE_STATE eStae = WAVE_STATE.WAVE_NONE; m_EnemyMangaer.WaveClear(ref eStae); switch (eStae) { case WAVE_STATE.WAVE_CLEAR: m_EnemyMangaer.TrSetting(m_PlayerManager.GetCharTR()); m_EnemyMangaer.ActiveWave(); break; case WAVE_STATE.WAVE_END: /* * 현재는 바로 이전 화면으로 로딩해주지만 아래와 같은 것이 필요 * 스테이지를 클리어하였기에 경험치와 아이템들을 정산해줘야 하며 * 캐릭터의 스테이터스 등을 상승시켜줄 필요가있다. */ Time.timeScale = 0.0f; m_ResultPanel.gameObject.SetActive(true); CancelInvoke("WaveClear"); //결과창을띄워준다. break; } }
void Start() { m_CallBack = Camera.main.GetComponent <FollowCam>().CameraSet; //카메라 셋팅 콜백 string strStage = Util.ConvertToString(GameManager.instance.ReturnStage()); //첫시작 string strFile = "Excel/StageExcel/" + strStage + "/Map_Object"; //해당스테이지의 맵 Info List <Dictionary <string, object> > Info = EXCEL.ExcelLoad.Read(strFile); strFile = "Excel/Table/Stage_Table"; //전체 맵의 table 데이터 List <Dictionary <string, object> > Table = EXCEL.ExcelLoad.Read(strFile); strFile = "Excel/StageExcel/" + strStage + "/Event_Pos"; //해당 맵의 시작 등의 좌표 List <Dictionary <string, object> > Pos = EXCEL.ExcelLoad.Read(strFile); m_MapManager = new MapManager(m_arrObject[(int)OBJECT_INDEX.OBJECT_BACKGROUND].transform, Info, Table, Pos); //배경 오브젝트 설정 m_arrObject[(int)OBJECT_INDEX.OBJECT_BACKGROUND].GetComponent <NavMeshSurface>().BuildNavMesh(); //네비메쉬 서페이스로 런타임 베이크 m_PlayerManager = new PlayerManager(m_arrObject[(int)OBJECT_INDEX.OBJECT_PLAYER].transform, m_arrObject[(int)OBJECT_INDEX.OBJECT_PARTICLE].transform); //플레이어 셋팅 strFile = "Excel/StageExcel/" + strStage + "/Enemy_Pos"; Pos = EXCEL.ExcelLoad.Read(strFile); strFile = "Excel/StageExcel/" + strStage + "/Enemy_Info"; Info = EXCEL.ExcelLoad.Read(strFile); m_EnemyMangaer = new EnemyManager(m_arrObject[(int)OBJECT_INDEX.OBJECT_ENEMY].transform, Pos, Info); //에너미 셋팅 var vecPos = m_MapManager.ReturnEventPos(); m_PlayerManager.PlayerSet(0, vecPos[0], Quaternion.identity, JumpEnd); //가장 첫번째 캐릭터와, 포지션 셋팅 //스타트에서 처음 포지셔닝을 셋팅 m_CallBack(m_PlayerManager.GetCharTR()); //카메라 콜백 함수 선언 m_EnemyMangaer.TrSetting(m_PlayerManager.GetCharTR()); //타겟 셋팅 m_EnemyMangaer.ActiveWave(); //액티브 PoolManager.instance.Set(POOL_INDEX.POOL_HP_ITEM.ToString(), "Prefabs/HP", 10); PoolManager.instance.Set(POOL_INDEX.POOL_SP_ITEM.ToString(), "Prefabs/SP", 10); InvokeRepeating("WaveClear", 2.0f, 1.0f); InvokeRepeating("PlayerDie", 2.0f, 1.0f); }