| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class MoveCharacter : Character
- {
- public Foot foot;
- public float extraRiseGravity = 0; //上升时额外重力加速度
- public float extraFallGravity = -10; //下落时额外重力加速度
- public float moveSpeed = 5;
- //[HideInInspector]
- public float beRepelValue;
- public float totalBeRepelValue;
- [HideInInspector]
- public float weakTime;
- public float totalWeakTime;
- public float weakUpSpeed = 10f;
- public float decelerationRatio = 1f;
- public float minHurtKeepTime = 0.2f;
- [HideInInspector]
- public float hurtKeepTime = 0;
- public float hurtChangeVelocity = 1;
- public override void BeHit(int damage, Vector3 force, bool changeHurt, float repelValue)
- {
- print("MoveCharacterBeHit");
- if (invincibleTime > 0)
- {
- return;
- }
- hp -= damage;
- uiHp.Show(hp, totalHp);
- if (hp <= 0)
- {
- rb.AddForce(force);
- ChangeState(CharacterState.Die);
- return;
- }
- else if (changeHurt && state == CharacterState.Weak)
- {
- print("ChangeHurt");
- rb.AddForce(force);
- ChangeState(CharacterState.Hurt);
- beRepelValue = totalBeRepelValue;
- return;
- }
- beRepelValue -= repelValue;
- if (changeHurt && beRepelValue <= 0)
- {
- print("ChangeWeak");
- ChangeState(CharacterState.Weak);
- }
- }
- }
|