From 40b918d5189a154bc0ff31627e69867742934720 Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Tue, 17 Nov 2020 21:10:05 +0800 Subject: [PATCH] buff补充 --- Assets/Scripts/TowerDefense/Towers/TowerLevel.cs | 41 +++++++++++++++++++++++++---------------- 1 files changed, 25 insertions(+), 16 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Towers/TowerLevel.cs b/Assets/Scripts/TowerDefense/Towers/TowerLevel.cs index 04bf714..8e6649f 100644 --- a/Assets/Scripts/TowerDefense/Towers/TowerLevel.cs +++ b/Assets/Scripts/TowerDefense/Towers/TowerLevel.cs @@ -195,15 +195,18 @@ { effect.Initialize(alignment, mask); effect.towerPtr = tower; + AttackAffector attackAffector = effect.GetComponent<AttackAffector>(); + + if (attackAffector.projectile != null) + { + Damager damager = attackAffector.projectile.gameObject.GetComponent<Damager>(); + damager.TowerAttributeId = tower.attributeId; + } } m_ParentTower = tower; Transform starTs = transform.Find("Star"); starTs.localPosition = new Vector3(0, 0.2f, 0.6f); starTs.localRotation = Quaternion.Euler(60, 180, 0); - - // Vector3 parentScale = transform.parent.transform.localScale; - // Vector3 tmpScale = new Vector3(0.72f, 0.5f, 0.5f); - // starTs.localScale = tmpScale * (6 / parentScale.x); } private Transform mat; @@ -216,7 +219,10 @@ mat = transform.Find("Cube"); myRender = mat.GetComponent<MeshRenderer>(); normalScale = new Vector3(1.5f, 1.5f, 1.5f); + } + private void Start() + { if (ActionAnimator != null) { AnimationClip[] clips = ActionAnimator.runtimeAnimatorController.animationClips; @@ -232,7 +238,7 @@ GameObject affectorObj = transform.Find("Affector").gameObject; AttackAffector attackAffector = affectorObj.GetComponent<AttackAffector>(); - fireRate = attackAffector.fireRate; + fireRate = attackAffector.FireRate; if (actionTimeArr[1] > 1 / fireRate) { @@ -240,33 +246,36 @@ attackSpeed = actionTimeArr[1] * fireRate; } SetAttackState(false); - } } public void LateUpdate() { - if (ActionAnimator != null && ActionAnimator.isActiveAndEnabled) - { - AnimatorStateInfo stateInfo = ActionAnimator.GetCurrentAnimatorStateInfo(0); + if (ActionAnimator == null || !ActionAnimator.isActiveAndEnabled) return; - if (ActionState == TowerActionState.Attack && stateInfo.normalizedTime >= 0.9f) - ChangeState(TowerActionState.Standing); - } + AnimatorStateInfo stateInfo = ActionAnimator.GetCurrentAnimatorStateInfo(0); + + if (ActionState == TowerActionState.Attack && stateInfo.normalizedTime >= 1f) + ChangeState(TowerActionState.Standing); } public void ChangeState(TowerActionState state) { - if (ActionAnimator == null || ActionState == state) return; + if (ActionAnimator == null || !ActionAnimator.isActiveAndEnabled) return; ActionState = state; + + if (ActionState == TowerActionState.Attack && state == TowerActionState.Attack) + { + ActionAnimator.Update(0); + ActionAnimator.Play("Attack", 0, 0); + } + ActionAnimator.SetInteger(paramName, (int)state); if (state == TowerActionState.Attack) ActionAnimator.speed = attackSpeed * FireSpeed; else if (state == TowerActionState.Standing) ActionAnimator.speed = 1f; - - ActionAnimator.SetInteger(paramName, (int)state); } /// <summary> @@ -435,7 +444,7 @@ var attack = affector as AttackAffector; if (attack != null && attack.damagerProjectile != null) { - dps += attack.GetProjectileDamage() * attack.fireRate; + dps += attack.GetProjectileDamage() * attack.FireRate; } } return dps; -- Gitblit v1.9.1