예제 #1
0
            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]);
                    }
                }
            }
예제 #2
0
            /// <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; //공격 상태 해제
            }
예제 #3
0
            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;
            }