コード例 #1
0
            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]);
                    }
                }
            }
コード例 #2
0
ファイル: WeaponeCtrl.cs プロジェクト: rainbowkjh/UnityGame
            /// <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
                }
            }
コード例 #3
0
ファイル: TrooperCar.cs プロジェクト: rainbowkjh/UnityGame
            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();
            }
コード例 #4
0
            //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());
                        }
                    }
                }
            }