ニュース

Top  >   15. C#とMonoBehaviour  >   Q, 弾が当たった瞬間に火花を出したい

Q, 弾が当たった瞬間に火花を出したい

2026/03/18

メインコンテンツへスキップ
< すべてのカテゴリに戻る

A,結論

当たった瞬間にパーティクルのプレハブを生成(Instantiate)します。

原因 / 背景

常に表示しておく必要がないエフェクトは、必要な時だけ呼び出すのがパフォーマンスに良いためです。

実装 / 手順

OnCollisionEnter 内で Instantiate(effectPrefab, position, rotation) を実行します。

サンプルコード

using UnityEngine;

public class HitEffectSpawner : MonoBehaviour
{
    [SerializeField] private GameObject hitEffectPrefab;

    private void OnCollisionEnter(Collision collision)
    {
        if (hitEffectPrefab == null || collision.contactCount == 0)
        {
            return;
        }

        ContactPoint contact = collision.GetContact(0);
        Instantiate(hitEffectPrefab, contact.point, Quaternion.LookRotation(contact.normal));
    }
}

※ 実機確認が必要な項目は、Editor だけで判断せず対象デバイスでも必ず動作確認してください。

難易度:Level 2(初心者)
対象プラットフォーム:PC,Android,iOS,Unity
関連キーワード:エフェクト,ヒット,発生,衝突

Level 1-2 向けバナー