コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】他のオブジェクトの OnCollisionEnter や TriggerEnter などのイベントを検知できる「Unity Event Bridge」紹介

はじめに

「Unity Event Bridge」を Unity プロジェクトに導入することで
他のオブジェクトの OnCollisionEnter や TriggerEnter などのイベントを
検知できるようになります

使用例

using EventBridge;
using UnityEngine;

public class Example : MonoBehaviour
{
    [SerializeField] private Transform m_target = null;

    private IComponentEventHandler m_handler;

    private void Start()
    {
        m_handler = m_target.RequestEventHandlers();

        m_handler.TriggerEnter     += TriggerEnter;
        m_handler.TriggerStay      += TriggerStay;
        m_handler.TriggerExit      += TriggerExit;
        m_handler.CollisionEnter   += CollisionEnter;
        m_handler.CollisionStay    += CollisionStay;
        m_handler.CollisionExit    += CollisionExit;
        m_handler.CollisionEnter2D += CollisionEnter2D;
        m_handler.CollisionStay2D  += CollisionStay2D;
        m_handler.CollisionExit2D  += CollisionExit2D;
        m_handler.TriggerEnter2D   += TriggerEnter2D;
        m_handler.TriggerStay2D    += TriggerStay2D;
        m_handler.TriggerExit2D    += TriggerExit2D;
        m_handler.OnReset          += OnResetHanle;
        m_handler.WhenDestroy      += WhenDestroy;
        m_handler.Enable           += Enable;
        m_handler.Disable          += Disable;
    }

    private void OnDestroy()
    {
        m_handler.TriggerEnter     -= TriggerEnter;
        m_handler.TriggerStay      -= TriggerStay;
        m_handler.TriggerExit      -= TriggerExit;
        m_handler.CollisionEnter   -= CollisionEnter;
        m_handler.CollisionStay    -= CollisionStay;
        m_handler.CollisionExit    -= CollisionExit;
        m_handler.CollisionEnter2D -= CollisionEnter2D;
        m_handler.CollisionStay2D  -= CollisionStay2D;
        m_handler.CollisionExit2D  -= CollisionExit2D;
        m_handler.TriggerEnter2D   -= TriggerEnter2D;
        m_handler.TriggerStay2D    -= TriggerStay2D;
        m_handler.TriggerExit2D    -= TriggerExit2D;
        m_handler.OnReset          -= OnResetHanle;
        m_handler.WhenDestroy      -= WhenDestroy;
        m_handler.Enable           -= Enable;
        m_handler.Disable          -= Disable;
    }

    private void Disable()
    {
    }

    private void Enable()
    {
    }

    private void WhenDestroy()
    {
    }

    private void OnResetHanle()
    {
    }

    private void TriggerExit2D( Collider2D obj )
    {
    }

    private void TriggerStay2D( Collider2D obj )
    {
    }

    private void TriggerEnter2D( Collider2D obj )
    {
    }

    private void CollisionExit2D( Collision2D obj )
    {
    }

    private void CollisionStay2D( Collision2D obj )
    {
    }

    private void CollisionEnter2D( Collision2D obj )
    {
    }

    private void CollisionExit( Collision obj )
    {
    }

    private void CollisionStay( Collision obj )
    {
    }

    private void CollisionEnter( Collision obj )
    {
    }

    private void TriggerExit( Collider obj )
    {
    }

    private void TriggerStay( Collider obj )
    {
    }

    private void TriggerEnter( Collider obj )
    {
    }
}