/// <summary> /// 每帧的更新 /// </summary> public override void update() { //先决条件 if (soldier == null || soldier._data == null) { return; } //如果攻击目标为空,返回事件 if (soldier._data.AttackTarget == null) { soldier.notifyEvent(this, ATTACK_TARGET_IS_NULL, null); return; } //如果目标在攻击范围外,返回事件 //soldier._data.AttckDistance = 3f; // TODO if (Vector3.Distance(soldier.transform.position, soldier._data.AttackTarget.transform.position) > soldier._data.AttckDistance) { soldier.notifyEvent(this, ATTACK_TARGET_IS_OUT, null); return; } //攻击 if (isAttack) { //CD减少 ATKSpeed--; //如果攻击CD为0,开始1次攻击 if (ATKSpeed <= 0) { //停止攻击 isAttack = false; //面向敌人 soldier.gameObject.transform.LookAt(soldier._data.AttackTarget.gameObject.transform); //播放攻击动作 animator.Play("attack01"); } else { //播放待机动作 animator.Play("idle03"); } } }
/// <summary> /// 每帧的更新 /// </summary> public override void update() { //如果死亡 if (_deadDelay <= 0) { _host.notifyEvent(this, DEAD_COMPLETE_EVENT, null); return; } //计时 _deadDelay--; //播放死亡动画 _host.GetComponent <Animator>().Play("die01"); }