【unity】敵がダメージを受けたときに揺れる(ヒット演出)を作る【英語クイズ】

ヒット演出の仕組み

通常位置







元の位置

これだけで「当たった感」が出ます。

① 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().SetDamage(damage);
}

⑤ 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