
ヒット演出の仕組み
通常位置
↓
左
↓
右
↓
左
↓
元の位置
これだけで「当たった感」が出ます。
① EnemyHitEffect.cs を作る
Scripts フォルダ
右クリック
→ Create
→ C# Script
→ EnemyHitEffect
② スクリプト
これをそのまま入れてください
using UnityEngine;
using System.Collections;
public class EnemyHitEffect : MonoBehaviour
{
public float shakeAmount = 0.1f;
public float shakeTime = 0.2f;
private Vector3 originalPosition;
public void Hit()
{
StopAllCoroutines();
StartCoroutine(Shake());
}
IEnumerator Shake()
{
originalPosition = transform.localPosition;
float timer = 0;
while (timer < shakeTime)
{
float x = Random.Range(-shakeAmount, shakeAmount);
transform.localPosition = originalPosition + new Vector3(x, 0, 0);
timer += Time.deltaTime;
yield return null;
}
transform.localPosition = originalPosition;
}
}
③ Enemy オブジェクトに追加
Hierarchy
Enemy をクリック
→ Add Component
→ EnemyHitEffect
④ BattleSystem から呼ぶ
BattleSystem.cs に追加
public EnemyHitEffect enemyHitEffect;
攻撃処理をこうする
public void PlayerAttack(int damage)
{
enemy.TakeDamage(damage);
enemyHitEffect.Hit();
Instantiate(attackEffectPrefab, effectPosition.position, Quaternion.identity);
GameObject popup = Instantiate(damagePopupPrefab, popupPosition.position, Quaternion.identity);
popup.GetComponent
}
⑤ Inspector 設定
BattleSystem を選択して
Enemy Hit Effect → Enemy をドラッグ
または Enemy の中の EnemyHitEffect をドラッグ
🎮 完成するとこうなる
英単語正解
↓
攻撃
↓
敵 揺れる
↓
エフェクト
↓
ダメージ数字
↓
HP減る
一気にゲーム感出ます。
🔥 揺れ強さおすすめ設定
EnemyHitEffect Inspector
設定 値
Shake Amount 0.1
Shake Time 0.2
もっと強くするなら
Shake Amount = 0.2
Shake Time = 0.3