public void Attack_Default(float coolTime, ref Transform attacker, Unit__Base_Stat unitStat, int boolIndex) { //공격 _unitBaseEngine._unit_Combat_Engine.Default_ATK(ref attacker, (SkillBaseStat)null); //딜레이 enemyCoolTimer.StartCoroutine(enemyCoolTimer.Timer(coolTime, (input) => { enemy_is_ON_CoolTime[boolIndex] = input; }, true)); }
// Update is called once per frame void Update() { //플레이어가 조작을 해도 되는 상황일 때 if (!playerMustBeFreeze) { if (__PLY_Stat.__PUB__Health_Point > 0) { //투사체를 발사하는 위치 변경, Q키를 눌러 전환한다. //4~5차 단계에서 UI를 추가할 것 if (Input.GetKeyDown(KeyCode.Q)) { transform.GetComponent <AudioSource>().Play(); //플레이어가 투사체를 발사할 위치가 앞 또는 우측인 경우 if (index_OF_playerAttackerTransforms < 2 && index_OF_playerAttackerTransforms >= 0) { //인덱스 값을 더해서 다음 위치로 바꾼다. index_OF_playerAttackerTransforms++; } //플레이어가 투사체를 발사할 위치가 좌측인 경우 else { //다시 앞쪽으로 돌아간다. index_OF_playerAttackerTransforms = 0; } try { for (int i = 0; i < 3; i++) { attackDIR[i].enabled = false; } attackDIR[index_OF_playerAttackerTransforms].enabled = true; } catch (System.Exception) { } //설정된 투사체 발사 위치를 적용한다. playerAttacker = playerAttackerTransforms[index_OF_playerAttackerTransforms]; } if (transform.position.y >= 5.0f) { transform.position.Set(transform.position.x, 5.0f, transform.position.z); } //기본 이동 if (Input.GetKey(KeyCode.W)) { __PLY_Engine._unit_Move_Engine.Move_OBJ(__PLY_Stat.__PUB_Move_Speed, ref playerTransform, 1); } else if (Input.GetKey(KeyCode.S)) { __PLY_Engine._unit_Move_Engine.Move_OBJ(__PLY_Stat.__PUB_Move_Speed, ref playerTransform, -1f); } else { if (movingEffect.isPlaying) { movingEffect.Stop(); } } if (Input.GetKey(KeyCode.A)) { __PLY_Engine._unit_Move_Engine.Rotate_OBJ(__PLY_Stat.__PUB_Rotation_Speed, ref playerTransform, -1); } else if (Input.GetKey(KeyCode.D)) { __PLY_Engine._unit_Move_Engine.Rotate_OBJ(__PLY_Stat.__PUB_Rotation_Speed, ref playerTransform, 1); } else { } //if (Input.GetMouseButtonDown(1)) //{ // //임시코드(GUI - CH) // __PLY_Stat.__PUB__Health_Point -= 1; // __PLY_Stat.__PUB__Mana_Point -= 1; // __PLY_Stat.__PUB__Power_Point -= 1; // Debug.Log("Click Right"); // //임시코드(GUI - CH) //} //if (Input.GetMouseButtonUp(1)) //{ // Debug.Log("Mouse Up!"); //} //기본 공격 //마우스 좌클릭 -> 전면 공격 //마우스 좌클릭 && 기본 공격 쿨타임 끝남 && 마우스로 구조물 설치하는 스킬을 사용하고 있지 않을 때 if (Input.GetMouseButtonDown(0) && _Is_On_CoolTime__Default_ATK && !(_SPW_MOS_Skill_Activated)) { __PLY_Engine._unit_Combat_Engine.Default_ATK(ref playerAttacker, (SkillBaseStat)null); //쿨타임을 사용하기 위한 코루틴. 따로 외부 클래스 제작함. 상세 항목은 해당 클래스 참조 //나중에 쿨타임 값 같은 것도 따로 관리할 것 __PLY_CoolTimer.StartCoroutine( __PLY_CoolTimer.Timer( 1.0f, (input) => { _Is_On_CoolTime__Default_ATK = input; }, _Is_On_CoolTime__Default_ATK, (input) => { default_ATK_Remained_Time = input; } ) ); } //Debug.Log(__PLY_Selected_Skills[0].time); //마우스로 무언가를 설치해야 되는 스킬을 사용했고 아직 설치가 안 됬다면 모든 스킬을 사용할 수 없음 //1번 스킬 if (Input.GetKeyDown(KeyCode.Alpha1) && !(_SPW_MOS_Skill_Activated)) { PLY_Controller_Using_Skill(0); } //2번 스킬 else if (Input.GetKeyDown(KeyCode.Alpha2) && !(_SPW_MOS_Skill_Activated)) { PLY_Controller_Using_Skill(1); } //3번 스킬 else if (Input.GetKeyDown(KeyCode.Alpha3) && !(_SPW_MOS_Skill_Activated)) { PLY_Controller_Using_Skill(2); } //// for test //else if (Input.GetKeyDown(KeyCode.Alpha4) && !(_SPW_MOS_Skill_Activated)) //{ // __PLY_Engine._unit_Combat_Engine.Using_Skill(ref playerAttacker, debugUltimateSkill, true); //} else { } __PLY_Engine.ManageBUF(); } //플레이어 체력이 0이하이면 else { //플레이어가 죽었다고 알려주고 파괴한다. GameObject.Find("GameManager").GetComponent <MapManager>().PlayerDead(); Destroy(gameObject); } } }