【unity】HPバー+敵システムを作る【自分HP減る、敵HP減る】


HPバー+敵システムを「そのまま作れるレベル」で説明する。

① HPバーを作る(UI)

作り方
Canvas 右クリック
→ UI
→ Slider
名前変更
PlayerHPBar
見た目設定

Inspectorで

Min Value = 0
Max Value = 100
Value = 100
位置
Pos X = -200
Pos Y = 200
Width = 300
Height = 30
不要なもの削除(見やすくする)

Hierarchy:

PlayerHPBar
├─ Background
├─ Fill Area
│ └─ Fill
└─ Handle Slide Area ← 削除

👉 Handle はいらない(つまみ)

② 敵のHPバー

同じものをコピー

Ctrl + D
→ EnemyHPBar

位置:

Pos X = 200
Pos Y = 200

③ Player.cs(プレイヤー)

using UnityEngine;
using UnityEngine.UI;

public class Player : MonoBehaviour
{
public int maxHP = 100;
public int currentHP;

public Slider hpBar;

void Start()
{
currentHP = maxHP;
hpBar.value = currentHP;
}

public void TakeDamage(int damage)
{
currentHP -= damage;
hpBar.value = currentHP;

if(currentHP <= 0)
{
Debug.Log("Player Dead");
}
}
}

④ Enemy.cs(敵)

using UnityEngine;
using UnityEngine.UI;

public class Enemy : MonoBehaviour
{
public int maxHP = 50;
public int currentHP;

public Slider hpBar;

void Start()
{
currentHP = maxHP;
hpBar.value = currentHP;
}

public void TakeDamage(int damage)
{
currentHP -= damage;
hpBar.value = currentHP;

if(currentHP <= 0)
{
Debug.Log("Enemy Defeated!");
}
}
}

⑤ オブジェクト作成

Hierarchyで

Create Empty → Player
Create Empty → Enemy

それぞれにスクリプト追加

⑥ HPバーを接続(重要)

Inspectorで

Player
→ hpBar に PlayerHPBar をドラッグ

Enemy
→ hpBar に EnemyHPBar をドラッグ

⑦ BattleSystemを進化させる

ここがゲームの核🔥

public class BattleSystem : MonoBehaviour
{
public Player player;
public Enemy enemy;
public QuizManager quiz;

public void SubmitAnswer(string answer)
{
if(quiz.IsCorrect(answer))
{
enemy.TakeDamage(20);
}
else
{
player.TakeDamage(10);
}
}
}

⑧ QuizManagerに追加(重要)

public bool IsCorrect(string answer)
{
return answer == words[currentQuestion];
}

⑨ 動き

問題表示

答え入力

OK押す

正解 → 敵HP減る
不正解 → 自分HP減る

どっちか0 → 勝敗
⑩ 見た目イメージ
[Player HP ======= ]

VS

[Enemy HP ===== ]

apple の意味は?

[入力欄]

[OK]