public void Fire() { if (!player.IsReload && !player.IsInven && !player.IsStun && !player.IsChestOpen && !player.IsSkill) { if (Input.GetMouseButton(1) && NBullet > 0) { if (Time.time >= fireTime) { GameManager.INSTANCE.SFXPlay(_Audio, _Sfx[0]); NBullet--; fireTime = Time.time + FireRate + Random.Range(0.0f, 0.3f); player.FSatiety -= 0.5f; //배고품 수치를 1씩 감소 StartCoroutine(player.ShakeCam.ShakeCamAct(0.05f, 0.1f, 0.1f)); //카메라 흔들림 player.Stop(); aniCtrl.AniFire(); Muzzle.Play(); BulletSetting(true); } } else if (Input.GetMouseButtonDown(1) && NBullet <= 0) { GameManager.INSTANCE.SFXPlay(_Audio, _Sfx[2]); } } }
/// <summary> /// Enemy Attack /// </summary> public IEnumerator EnemyAttack(EnemyCtrl enemy, float attackDelay = 1.5f) { enemy.IsAttack = true; //공격 상태 enemy.EnemyStop(); //공격 범위에 들어오면 정지한다 enemy.Nav.transform.LookAt(enemy.TargetTr); //타겟을 바라본다 enemy.AniCtrl.AniAttack(); //공격 애니메이션 yield return(new WaitForSeconds(0.5f)); Muzzle.Play(); //공격 이펙트(총구 화염 또는 공격 효과) BulletSetting(false); //공격 이펙트(데미지 적용) float ran = Random.Range(0.0f, attackDelay); yield return(new WaitForSeconds(ran)); enemy.IsAttack = false; //공격 상태 해제 }
IEnumerator AttackDelay() { player.IsAttack = true; int ran = Random.Range(0, 3); player.AniCtrl.AniAttackID(ran); player.AniCtrl.AniAttack(); GameManager.INSTANCE.SFXPlay(_Audio, _Sfx[0]); player.FSatiety -= 1f; Muzzle.Play(); //공격 이펙트 player.Stop(); yield return(new WaitForSeconds(0.5f)); BulletSetting(true); //속성 이펙트 yield return(new WaitForSeconds(0.5f)); player.IsAttack = false; }