From 554eda43e00d5817cd3e06a60e39d4bd882ee584 Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Wed, 25 Nov 2020 10:33:33 +0800 Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master --- Assets/Scripts/TowerDefense/Towers/TowerLevel.cs | 56 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 44 insertions(+), 12 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Towers/TowerLevel.cs b/Assets/Scripts/TowerDefense/Towers/TowerLevel.cs index f7a3103..35b5bcc 100644 --- a/Assets/Scripts/TowerDefense/Towers/TowerLevel.cs +++ b/Assets/Scripts/TowerDefense/Towers/TowerLevel.cs @@ -66,6 +66,11 @@ public GameObject AttackBody; /// <summary> + /// 可以放置的材质 + /// </summary> + public MeshRenderer canPlaceMesh; + + /// <summary> /// 精灵塔动作状态 /// </summary> public TowerActionState ActionState { get; protected set; } @@ -195,8 +200,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); } private Transform mat; @@ -209,7 +224,11 @@ mat = transform.Find("Cube"); myRender = mat.GetComponent<MeshRenderer>(); normalScale = new Vector3(1.5f, 1.5f, 1.5f); + canPlaceMesh.enabled = false; + } + private void Start() + { if (ActionAnimator != null) { AnimationClip[] clips = ActionAnimator.runtimeAnimatorController.animationClips; @@ -225,7 +244,7 @@ GameObject affectorObj = transform.Find("Affector").gameObject; AttackAffector attackAffector = affectorObj.GetComponent<AttackAffector>(); - fireRate = attackAffector.fireRate; + fireRate = attackAffector.FireRate; if (actionTimeArr[1] > 1 / fireRate) { @@ -233,33 +252,46 @@ 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); } + /// <summary> + /// 设置可以放置 + /// </summary> + /// <param name="isOn"></param> + public void SetCanPlace(bool isOn) + { + if (canPlaceMesh.enabled != isOn) + canPlaceMesh.enabled = isOn; + } + 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> @@ -428,7 +460,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