ActionDefense.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using BehaviorDesigner.Runtime;
  5. using BehaviorDesigner.Runtime.Tasks;
  6. using UnityEngine.SceneManagement;
  7. using UnityGameFramework.Runtime;
  8. /// <summary>
  9. /// 行为 防御
  10. /// </summary>
  11. public class ActionDefense : Action
  12. {
  13. [BehaviorDesigner.Runtime.Tasks.Tooltip("等待时间")]
  14. public SharedFloat waitTime = 2;
  15. /// <summary>
  16. /// 开始时间
  17. /// </summary>
  18. private float startTime;
  19. /// <summary>
  20. /// 动画控制器
  21. /// </summary>
  22. private Animator animator = null;
  23. private Role role = null;
  24. public override void OnAwake()
  25. {
  26. animator = gameObject.GetComponentInChildren<Animator>();
  27. role = gameObject.GetComponent<Role>();
  28. }
  29. public override void OnStart()
  30. {
  31. startTime = Time.time;
  32. animator.SetBool("Defense", true);
  33. }
  34. public override TaskStatus OnUpdate()
  35. {
  36. if (startTime + waitTime.Value < Time.time)
  37. {
  38. return TaskStatus.Success;
  39. }
  40. return TaskStatus.Running;
  41. }
  42. }