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)); } }
private void SetAttackAnimation() { animator = GetComponent <Animator>(); var animatorOverrideController = character.GetOverrideController(); animator.runtimeAnimatorController = animatorOverrideController; animatorOverrideController[DEFAULT_ATTACK] = currentWeaponConfig.GetAttackAnimClip(); }
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(); } }
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)); } }
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(); } }