void Update() { if (!isExplosion && !GameManager.INSTANCE.system.isPause) { //타이머 if (explosionTimer > 0) { explosionTimer -= Time.deltaTime * 1.0f; } //이펙트 실행 if (explosionTimer <= 0) { StartCoroutine(shake.ShakeCamera(0.1f, 0.3f, 0.3f)); isExplosion = true; explosionTimer = 0; if (isRepeat) { isExplosion = false; explosionTimer = repeatTimer; } explosionPar.Play(); _audio.volume = GameManager.INSTANCE.volume.sfx; _audio.PlayOneShot(_sfx[0]); } } }
/// <summary> /// 공격 /// </summary> public void Fire() { if (playerCtrl.IsLive && !playerCtrl.IsReload) { #region pc 사격 버그_ 효과음과 파티클 실행과 동시에 종료 if (Time.time >= fireTime) { if (NCurBullet > 0) { NCurBullet--; fireTime = Time.time + fireRate + Random.Range(0.0f, 0.3f); playerCtrl.AniCtrl.FireAni(); //Debug.Log("SFX 실행 상태 : " + _audio.isPlaying); //Debug.Log("Particle 실행 상태 1: " + muzzleEffect.isPlaying); //소리 크기 값을 가져온다 _audio.volume = GameManager.INSTANCE.volume.sfx; _audio.PlayOneShot(_sfx[0]); muzzleEffect.Play(); StartCoroutine(shakeCam.ShakeCamera(0.05f, 0.1f, 0.2f)); //공격 데미지 if (WeaponeState == 0 || WeaponeState == 1 || WeaponeState == 3) { AttackDmg(); } if (WeaponeState == 2) { AttackDmgEx(); } playerCtrl.AimUI.FireAimAni(); //에임이 벌어진다 playerCtrl.PlayerUI.AmmoInfo(NCurBullet, NMag); } //탄이 비어있다는 효과음 else if (NCurBullet == 0) { if (Time.time >= fireTime) { fireTime = Time.time + fireRate + Random.Range(0.1f, 0.3f); _audio.volume = GameManager.INSTANCE.volume.sfx; _audio.PlayOneShot(_sfx[2]); } } } #endregion } }
private void Update() { //폭발 되기 전 상태 효과음 변경 if (!explosion.IsExplosion) { //정차 상태 if (CarState == TrooperState.Idel) { _audio.PlayOneShot(_sfx[0]); //타이어 연기 이팩트 smokeEffect.TireSmokeStop(); } //드라이브 상태 if (CarState == TrooperState.Excel) { _audio.PlayOneShot(_sfx[1]); CarNextMove(); //Debug.Log("Tire Smoke"); smokeEffect.TireSmokePlay(); } //브레이크 if (CarState == TrooperState.Break) { _audio.PlayOneShot(_sfx[2]); smokeEffect.TireSmokePlay(); } } //폭발 시 캐릭터 및 연기 활성화 if (explosion.IsExplosion && isCarLive) { isCarLive = false; //폭발 연기 재생 시킴 smokeEffect.SmokePlay(); StartCoroutine(shakeCam.ShakeCamera(0.2f, 0.5f, 0.5f)); if (charObj != null) { charObj.SetActive(false); } } //폭발 옵션 확인 if (explosion.IsTimerStart) { ExplosionOption(); } Voulme(); }
//private void Start() //{ // charData = GetComponent<CharactersData>(); //} /// <summary> /// 일반 타격 /// </summary> /// <param name="dmg"></param> virtual public void HitDamage(float dmg) { if (charData != null) { if (charData.Hp > 0) { charData.Hp -= dmg; //HitDmg 스크립트 적용 된 대상이 플레이어 if (this.transform.tag.Equals("Player")) { //Debug.Log("Hit"); //플레이어 피격 UI PlayerCtrl player = GetComponent <PlayerCtrl>(); player.PlayerUI.PainSprite(dmg); shakeCam.IsPostSwitch = true; shakeCam.HitPostSetting(); StartCoroutine(shakeCam.ShakeCamera(0.3f, 0.3f, 0.3f)); } } if (charData.Hp <= 0 && charData.IsLive) { charData.Hp = 0; charData.IsLive = false; //생성되는 적이 아니라 엑스트라 적 if (this.transform.tag.Equals("Enemy")) { //player.NUpgradePoint += 50; playerUI.PointValue(); StartCoroutine(EnemyDisable()); } } } }