MoveCharacter.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class MoveCharacter : Character
  5. {
  6. public Foot foot;
  7. public float extraRiseGravity = 0; //上升时额外重力加速度
  8. public float extraFallGravity = -10; //下落时额外重力加速度
  9. public float moveSpeed = 5;
  10. [HideInInspector]
  11. public float beRepelValue;
  12. public float totalBeRepelValue;
  13. [HideInInspector]
  14. public float weakTime;
  15. public float totalWeakTime;
  16. public float weakUpSpeed = 10f;
  17. public float decelerationRatio = 1f;
  18. public override void BeHit(int damage, Vector3 force, bool changeHurt, float hurtTime, float repelValue)
  19. {
  20. print("MoveCharacterBeHit");
  21. if (invincibleTime > 0)
  22. {
  23. return;
  24. }
  25. hp -= damage;
  26. uiHp.Show(hp, totalHp);
  27. if (hp <= 0)
  28. {
  29. rb.AddForce(force);
  30. ChangeState(CharacterState.Die);
  31. return;
  32. }
  33. else if (changeHurt && state == CharacterState.Weak)
  34. {
  35. print("ChangeHurt");
  36. rb.AddForce(force);
  37. hurtKeepTime = hurtTime;
  38. ChangeState(CharacterState.Hurt);
  39. beRepelValue = totalBeRepelValue;
  40. return;
  41. }
  42. beRepelValue -= repelValue;
  43. if (changeHurt && beRepelValue <= 0)
  44. {
  45. print("ChangeWeak");
  46. ChangeState(CharacterState.Weak);
  47. }
  48. }
  49. }