UnityでPlayerが動く度にHPが減少していく機能の作成

以前、FPS視点で動くPlayerを制御する方法を紹介しました。

移動しているときのみに、HPを減少させたいので
velocityを使っていきます。
velocity.magnitudeというパラメータを使うことで、velocityの大きさを取得することができます。

 private Rigidbody rb;

void Update()
{
// ココから 以前の記事で紹介した動く操作方法
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
transform.Rotate(0,x,0, Space.World);
float angleY = (360 - transform.eulerAngles.y + 90) % 360;
float radian = angleY * Mathf.Deg2Rad;     
float sin = Mathf.Sin(radian);     
float cos = Mathf.Cos(radian);     
rb.velocity = new Vector3(cos, 0, sin) * z;
// ココまで 以前の記事で紹介した動く操作方法 

// velocityが動いているときのみ処理する 
if (rb.velocity.magnitude > 0)     
{         
 // velocityの大きさを引数にした関数を作成
updateHP(rb.velocity.magnitude);     
}

}


private void updateHP(float deltaHPacc) {
\\floatでHPを減少させていき
HPacc -= deltaHPacc;     
 \\intへキャスト
 HP = Mathf.RoundToInt(HPacc);     

}
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です