Ejemplo n.º 1
0
        IEnumerator AttackTargetRepeatedly()
        {
            bool attackerStillAlive = GetComponent <HealthSystem>().healthAsPercentage >= Mathf.Epsilon;
            bool targetStillAlive   = target.GetComponent <HealthSystem>().healthAsPercentage >= Mathf.Epsilon;

            while (attackerStillAlive && targetStillAlive)
            {
                //float weaponHitRate = currentWeaponConfig.GetTimeBetweenAnimationCycles();
                //float timeToWait = weaponHitRate * character.GetAnimSpeedMultiplier();

                var   animationClip     = currentWeaponConfig.GetAttackAnimClip();
                float animationClipTime = animationClip.length / character.GetAnimSpeedMultiplier();
                float timeToWait        = animationClipTime + currentWeaponConfig.GetTimeBetweenAnimationCycles();

                bool isTimeToHitAgain = Time.time - lastHitTime > timeToWait;

                if (isTimeToHitAgain)
                {
                    AttackTargetOnce();
                    lastHitTime = Time.time;
                }

                yield return(new WaitForSeconds(timeToWait));
            }
        }
Ejemplo n.º 2
0
        private void SetAttackAnimation()
        {
            animator = GetComponent <Animator>();
            var animatorOverrideController = character.GetOverrideController();

            animator.runtimeAnimatorController         = animatorOverrideController;
            animatorOverrideController[DEFAULT_ATTACK] = currentWeaponConfig.GetAttackAnimClip();
        }
Ejemplo n.º 3
0
        void SetAttackAnimation()
        {
            if (!character.getOverrideController)
            {
                Debug.Break();
                Debug.LogAssertion("Please provide " + gameObject + " with an animator override controller.");
            }
            var animatorOverrideController = character.getOverrideController;

            animator.runtimeAnimatorController         = animatorOverrideController;
            animatorOverrideController[DEFAULT_ATTACK] = getCurrentWeapon.GetAttackAnimClip();             // TODO remove paramater
        }
 private void SetAttackAnimation()
 {
     if (!character.GetOverrideController())
     {
         Debug.Break();
         Debug.LogAssertion("please provide gameobject");
     }
     else
     {
         var animatorOverrideController = character.GetOverrideController();
         animator.runtimeAnimatorController         = animatorOverrideController;
         animatorOverrideController[DEFAULT_ATTACK] = currentWeaponConfig.GetAttackAnimClip();
     }
 }
Ejemplo n.º 5
0
        private IEnumerator AttackTargetRepeatedly()
        {
            bool attackerStillAlive = GetComponent <HealthSystem>().HealthAsPercentage() >= Mathf.Epsilon;
            bool targetStillAlive   = target.GetComponent <HealthSystem>().HealthAsPercentage() >= Mathf.Epsilon;

            while (attackerStillAlive && targetStillAlive)
            {
                AnimationClip animationClip     = currentWeaponConfig.GetAttackAnimClip();
                float         animationClipTime = animationClip.length / character.GetAnimationSpeedMultiplier();
                float         attackTime        = animationClipTime + currentWeaponConfig.GetWaitTimeBetweenAnimations();

                bool timeToAttack = (Time.time - lastHitTime) > attackTime;

                if (timeToAttack)
                {
                    lastHitTime = Time.time;

                    AttackTargetOnce();
                }

                yield return(new WaitForSeconds(attackTime));
            }
        }
Ejemplo n.º 6
0
 private void SetAttackAnimation()
 {
     // protect against no override controller
     if (!character.getAnimOverrideController)
     {
         Debug.Break();
         Debug.LogAssertion("Please provide " + gameObject + " with an animator override controller!");
     }
     else
     {
         var animOverrideController = character.getAnimOverrideController;
         anim.runtimeAnimatorController         = animOverrideController;
         animOverrideController[DEFAULT_ATTACK] = currentWeaponConfig.GetAttackAnimClip();
     }
 }