コード例 #1
0
ファイル: Player.cs プロジェクト: scream870102/SSP
 public void TakeDamage(float damage, bool bLastHit = false, float knockBackDis = 0f, float knockBackDur = 0f, EKnockBackDirection knockBackDirection = EKnockBackDirection.BACKWARD)
 {
     if (movement.IsGuard)
     {
         bool    bStunned = movement.MinusGuardEnergy(damage);
         Vector3 newPos   = transform.position + (transform.position - targetPlayer.transform.position).normalized * knockBackDis / (bStunned ? .5f : 2f);
         ControllerMove(newPos, knockBackDur);
         return;
     }
     currentHealth -= damage;
     if (anim != null)
     {
         anim.SetTrigger(bLastHit ? "Revive" : "Hurt");
     }
     if (knockBackDis != 0f)
     {
         anim.applyRootMotion = false;
         Vector3 direction = Vector3.zero;
         if (knockBackDirection == EKnockBackDirection.BACKWARD)
         {
             direction = (transform.position - targetPlayer.transform.position).normalized;
         }
         else if (knockBackDirection == EKnockBackDirection.UP)
         {
             direction = Vector3.up;
         }
         else if (knockBackDirection == EKnockBackDirection.OBLIQUE)
         {
             direction = ((transform.position - targetPlayer.transform.position).normalized + Vector3.up).normalized;
         }
         Vector3 newPos = transform.position + direction * knockBackDis;
         ControllerMove(newPos, knockBackDur);
     }
 }
コード例 #2
0
 public AttackInfo(string boneName, float radius, float damage, float knockBackDis, float knockBackDur, EKnockBackDirection direction)
 {
     this.BoneName     = boneName;
     this.Radius       = radius;
     this.Damage       = damage;
     this.KnockBackDis = knockBackDis;
     this.KnockBackDur = knockBackDur;
     this.Direction    = direction;
 }