유니티 공부

OnColliderOrTriggerEvent

원티어맨 2023. 1. 27. 11:03

태그된 오브젝트에 충돌이나 트리거 이벤트시 작동하는 함수

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


using UnityEngine.Events;


public class OnColliderOrTriggerEvent : MonoBehaviour {
    public string compareTag;
    public UnityEvent onCollisionEnter;
    public UnityEvent onCollisionExit;
    public UnityEvent onCollisionStay;
    public UnityEvent onTriggerEnterEvent;
    public UnityEvent onTriggerExitEvent;
    public UnityEvent onTriggerStayEvent;

    public void OnTriggerEnter2D(Collider2D collision) {
        if(collision.gameObject.CompareTag(compareTag)) {
            onTriggerEnterEvent.Invoke();
        }
    }

    public void OnTriggerExit2D(Collider2D collision) {
        if (collision.gameObject.CompareTag(compareTag)) {
            onTriggerExitEvent.Invoke();
        }
    }

    public void OnTriggerStay2D(Collider2D collision) {
        if (collision.gameObject.CompareTag(compareTag)) {
            onTriggerStayEvent.Invoke();
        }
    }

    public void OnCollisionEnter2D(Collision2D collision) {
        if (collision.gameObject.CompareTag(compareTag)) {
            onCollisionEnter.Invoke();
        }
    }
    public void OnCollisionExit2D(Collision2D collision) {
        if (collision.gameObject.CompareTag(compareTag)) {
            onCollisionExit.Invoke();
        }
    }
    public void OnCollisionStay2D(Collision2D collision) {
        if (collision.gameObject.CompareTag(compareTag)) {
            onCollisionStay.Invoke();
        }
    }
}