
やることはシンプルで、
ランダムで
20% → クリティカル
80% → 普通ダメージ
にします。
クリティカルの仕組み
通常ダメージ = 10
クリティカル = 20(2倍)
色 = 赤
文字 = CRITICAL
① BattleSystem.cs を変更
PlayerAttack をこうします
public void PlayerAttack(int damage)
{
bool isCritical = Random.value < 0.2f; // 20%でクリティカル
if (isCritical)
{
damage *= 2;
}
enemy.TakeDamage(damage);
enemyHitEffect.Hit();
Instantiate(attackEffectPrefab, effectPosition.position, Quaternion.identity);
GameObject popup = Instantiate(damagePopupPrefab, popupPosition.position, Quaternion.identity);
popup.GetComponent
}
② DamagePopup.cs を変更
using UnityEngine;
using TMPro;
public class DamagePopup : MonoBehaviour
{
public TextMeshProUGUI damageText;
public float moveSpeed = 1f;
public float lifeTime = 1f;
public void SetDamage(int damage, bool isCritical)
{
damageText.text = damage.ToString();
if (isCritical)
{
damageText.color = Color.red;
damageText.fontSize = 48;
damageText.text = "CRITICAL\n" + damage;
}
else
{
damageText.color = Color.white;
damageText.fontSize = 36;
}
Destroy(gameObject, lifeTime);
}
void Update()
{
transform.Translate(Vector3.up * moveSpeed * Time.deltaTime);
}
}
表示イメージ
通常
12
クリティカル
CRITICAL
24 ← 赤文字 大きい
かなりゲームっぽくなります。
クリティカル確率を変える
ここを変えるだけ
Random.value < 0.2f
数字 確率
0.1 10%
0.2 20%
0.3 30%
0.5 50%
おすすめ
0.15f
15%くらいがRPGっぽい