Udemy-Unity制作类暗黑破坏神游戏记录-P31-p32

2024-09-10
63看过
添加攻击动画,在动画状态机添加名为attack的Trigger,更新代码
Fighter

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using RPG.Movement;
  5. using RPG.Core;
  6. namespace RPG.Combat
  7. {
  8.     //攻击
  9.     public class Fighter : MonoBehaviour,IAction
  10.     {
  11.         [SerializeField] float weaponRange = 2f;// 武器范围,表示武器可以攻击的最大距离
  12.         Transform target;// 当前攻击的目标
  13.         private Mover mover;// 用于移动角色的 Mover 组件
  14.         private bool isInRange;// 标记目标是否在攻击范围内
  15.         private void Start()
  16.         {
  17.             mover = GetComponent<Mover>();// 获取 Mover 组件
  18.         }
  19.         private void Update()
  20.         {
  21.             if (target == null) return;// 如果目标为空,则不进行任何操作
  22.             if (!GetIsInRange()) // 如果目标不在攻击范围内,则移动到目标位置
  23.             {
  24.                 mover.MoveTo(target.position);
  25.                
  26.             }
  27.             else
  28.             {
  29.                 mover.Cancel(); // 目标在攻击范围内,取消移动,并触发攻击动画
  30.                 AttackBehaviour();
  31.             }
  32.         }
  33.         private void AttackBehaviour()
  34.         {
  35.             GetComponent<Animator>().SetTrigger("attack");
  36.         }
  37.         private bool GetIsInRange()
  38.         {
  39.             return  Vector3.Distance(transform.position, target.position) < weaponRange;// 检查目标是否在攻击范围内
  40.         }
  41.         public void Attack(CombatTarget combatTarget)
  42.         {
  43.             GetComponent<ActionScheduler>().StartAction(this); // 启动当前动作并设置目标
  44.             target = combatTarget.transform;
  45.            
  46.         }
  47.         public void Cancel()
  48.         {
  49.             target = null;// 取消攻击,清除目标
  50.         }
  51.         // 动画事件:攻击时触发的事件
  52.         private void Hit()
  53.         {
  54.             // 在这里实现攻击的具体逻辑
  55.         }
  56.     }
  57. }
复制代码







回复

举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表