Exemplo n.º 1
0
    private IEnumerator CheckReloadAmmoAnimationEnd()
    {
        while (true)
        {
            yield return(null);

            GunStateInfo = GunAnimator.GetCurrentAnimatorStateInfo(1);
            if (GunStateInfo.IsTag("ReloadAmmo"))
            {
                if (GunStateInfo.normalizedTime >= 0.7f)
                {
                    int tem_NeedAmmoCount  = AmmoInMag - CurrentAmmo;
                    int tem_RemainingCount = CurrentMaxAmmoCarride - tem_NeedAmmoCount;
                    if (tem_RemainingCount <= 0)
                    {
                        CurrentAmmo = CurrentMaxAmmoCarride + CurrentAmmo;
                    }
                    else
                    {
                        CurrentAmmo = AmmoInMag;
                    }
                    CurrentMaxAmmoCarride = tem_RemainingCount <= 0 ? 0 : tem_RemainingCount;

                    yield break;
                }
            }
        }
    }
Exemplo n.º 2
0
        protected override void Reload()
        {
            GunAnimator.SetLayerWeight(2, 1);
            GunAnimator.SetTrigger(CurrentAmmo > 0 ? "ReloadLeft" : "ReloadOutOf");

            FirearmsReloadAudioSource.clip =
                CurrentAmmo > 0
                    ? FirearmsAudioData.ReloadLeft
                    : FirearmsAudioData.ReloadOutOf;

            FirearmsReloadAudioSource.Play();

            if (reloadAmmoCheckerCoroutine == null)
            {
                reloadAmmoCheckerCoroutine = CheckReloadAmmoAnimationEnd();
                StartCoroutine(reloadAmmoCheckerCoroutine);
            }
            else
            {
                StopCoroutine(reloadAmmoCheckerCoroutine);
                reloadAmmoCheckerCoroutine = null;
                reloadAmmoCheckerCoroutine = CheckReloadAmmoAnimationEnd();
                StartCoroutine(reloadAmmoCheckerCoroutine);
            }
        }
Exemplo n.º 3
0
        protected override void Shooting()
        {
            if (CurrentAmmo <= 0)
            {
                return;
            }
            if (!IsAllowShooting())
            {
                return;
            }
            MuzzleParticle.Play();
            CurrentAmmo -= 1;

            GunAnimator.Play("Fire", IsAiming ? 1 : 0, 0);

            FirearmsShootingAudioSource.clip = FirearmsAudioData.ShootingAudio;
            FirearmsShootingAudioSource.Play();

            CreateBullet();
            CasingParticle.Play();
            if (mouseLook)
            {
                mouseLook.FiringForTest();
            }
            LastFireTime = Time.time;
        }
Exemplo n.º 4
0
    public float recoil;         // assigned in editor

    void Start()
    {
        gunAnimator = GetComponent <GunAnimator> ();
        fireSound   = GetComponent <AudioSource> ();
        bulletNum   = bulletCapacity;
        parent      = gameObject.transform.parent.gameObject.GetComponent <Camera> ();
        hitSystem   = GameObject.Find("Game").GetComponent <Hit> ();
    }
Exemplo n.º 5
0
 protected override void Shooting()
 {
     if (CurrentAmmo <= 0)
     {
         return;
     }
     if (!IsAllowShooting())
     {
         return;
     }
     MuzzleParticle.Play();
     CurrentAmmo -= 1;
     GunAnimator.Play("Fire", 0, 0);
     CasingParticle.Play();
     LastFireTime = Time.time;
 }
Exemplo n.º 6
0
 protected override void Shooting()
 {
     if (CurrentAmmo <= 0)
     {
         return;
     }
     if (!IsAllowShooting())
     {
         return;
     }
     MuzzleParticle.Play();
     CurrentAmmo -= 1;
     GunAnimator.Play(stateName: "Fire", layer: 0, normalizedTime: 0);
     CreateBullet();
     CasingParticle.Play();
     LastFireTime = Time.time;
 }
Exemplo n.º 7
0
 void Update()
 {
     if (uziAnimator != null)
     {
         if (state == PlayerState.aiming)
         {
             uziAnimator.isAiming(true);
         }
         else
         {
             uziAnimator.isAiming(false);
         }
     }
     else
     {
         uziAnimator = Uzi.GetComponent <GunAnimator>();
     }
 }
Exemplo n.º 8
0
 protected override void Reload()
 {
     GunAnimator.SetLayerWeight(1, 1);
     GunAnimator.SetTrigger(CurrentAmmo > 0 ? "ReloadLeft" : "ReloadOutOf");
     //通过赋值协程给变量来实现反复执行
     if (checkReloadAmmoAnimationEnd_Coroutine == null)
     {
         checkReloadAmmoAnimationEnd_Coroutine = CheckReloadAmmoAnimationEnd();
         StartCoroutine(checkReloadAmmoAnimationEnd_Coroutine);
     }
     else
     {
         StopCoroutine(checkReloadAmmoAnimationEnd_Coroutine);
         checkReloadAmmoAnimationEnd_Coroutine = null;
         checkReloadAmmoAnimationEnd_Coroutine = CheckReloadAmmoAnimationEnd();
         StartCoroutine(checkReloadAmmoAnimationEnd_Coroutine);
     }
 }
Exemplo n.º 9
0
    protected override void Reload()
    {
        //GunAnimator.SetLayerWeight(1, 1);
        GunAnimator.SetTrigger(CurrentAmmo > 0 ? "ReloadLeft" : "ReloadOutOf");


        if (reloadAmmoCheckerCoroutine == null)
        {
            reloadAmmoCheckerCoroutine = CheckReloadAmmoAnimationEnd();
            StartCoroutine(reloadAmmoCheckerCoroutine);
        }
        else
        {
            StopCoroutine(reloadAmmoCheckerCoroutine);
            reloadAmmoCheckerCoroutine = null;
            reloadAmmoCheckerCoroutine = CheckReloadAmmoAnimationEnd();
            StartCoroutine(reloadAmmoCheckerCoroutine);
        }
    }
Exemplo n.º 10
0
        protected override void Reload()
        {
            //CurrentAmmo = AmmoInMag;
            //CurrentMaxAmmoCarried -= AmmoInMag;
            GunAnimator.SetLayerWeight(2, 1);//改变动画layer权重
            GunAnimator.SetTrigger(CurrentAmmo > 0 ? "ReloadLeft" : "ReloadOutOf");
            //StartCoroutine(CheckReloadAnimationEnd());

            FirearmsReloadAudioSource.clip = CurrentAmmo > 0?firearmsAudioData.ReloadLeft:firearmsAudioData.ReloadOutOf;
            FirearmsReloadAudioSource.Play();

            if (reloadAmmoCheckerCoroutine == null)
            {
                reloadAmmoCheckerCoroutine = CheckReloadAnimationEnd();
                StartCoroutine(reloadAmmoCheckerCoroutine);
            }
            else
            {
                StopCoroutine(reloadAmmoCheckerCoroutine);
                reloadAmmoCheckerCoroutine = null;
                reloadAmmoCheckerCoroutine = CheckReloadAnimationEnd();
                StartCoroutine(reloadAmmoCheckerCoroutine);
            }
        }
Exemplo n.º 11
0
 void Start()
 {
     state       = PlayerState.notAiming;
     uziAnimator = Uzi.GetComponent <GunAnimator>();
 }