본문 바로가기
개발/Unirx

유니티 Unirx 트리거 사용법 간단 예시 Triggers

by SPNK 2024. 2. 17.
반응형

OnMouseDownAsObservable

GameObject 위에서 마우스 버튼을 누르면 이벤트가 발생합니다.

using UniRx;
using UnityEngine;

public class MouseDownTriggerExample : MonoBehaviour
{
    private void Start()
    {
        this.OnMouseDownAsObservable()
            .Subscribe(_ => Debug.Log("Mouse Down"));
    }
}

 

OnCollisionIntegerAsObservable

충돌이 발생하면 이벤트를 발생시킵니다.

using UniRx;
using UnityEngine;

public class CollisionEnterTriggerExample : MonoBehaviour
{
    private void Start()
    {
        this.OnCollisionEnterAsObservable()
            .Subscribe(collision => Debug.Log("Collision Enter"));
    }
}

 

OnTriggerExit2DAsObservable

다른 충돌체가 2D에서 트리거 영역을 벗어날 때 이벤트를 방출합니다.

using UniRx;
using UnityEngine;

public class TriggerExit2DTriggerExample : MonoBehaviour
{
    private void Start()
    {
        this.OnTriggerExit2DAsObservable()
            .Subscribe(otherCollider => Debug.Log("Trigger Exit 2D"));
    }
}

 

OnPointerDownAsObservable

UI 포인터가 UI 요소 위에 눌려지면 이벤트를 발생시킵니다.

using UniRx;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class PointerDownTriggerExample : MonoBehaviour, IPointerDownHandler
{
    public void OnPointerDown(PointerEventData eventData)
    {
        Debug.Log("Pointer Down");
    }
}

 

OnParticleCollisionAsObservable

입자가 GameObject에 부딪힐 때 이벤트를 방출합니다.

using UniRx;
using UnityEngine;

public class ParticleCollisionTriggerExample : MonoBehaviour
{
    private void Start()
    {
        this.OnParticleCollisionAsObservable()
            .Subscribe(otherParticle => Debug.Log("Particle Collision"));
    }
}

 

OnDestroyAsObservable

using UniRx;
using UnityEngine;

public class DestroyTriggerExample : MonoBehaviour
{
    private void Start()
    {
        this.OnDestroyAsObservable()
            .Subscribe(_ => Debug.Log("Object Destroyed"));
    }
}

 

OnMouseOverAsObservable

마우스 포인터가 GameObject 위에 있을 때 이벤트를 발생시킵니다.

using UniRx;
using UnityEngine;

public class MouseOverTriggerExample : MonoBehaviour
{
    private void Start()
    {
        this.OnMouseOverAsObservable()
            .Subscribe(_ => Debug.Log("Mouse Over"));
    }
}

 

OnBecameVisibleAsObservable

GameObject가 카메라에 표시되면 이벤트를 발생시킵니다.

using UniRx;
using UnityEngine;

public class BecameVisibleTriggerExample : MonoBehaviour
{
    private void Start()
    {
        this.OnBecameVisibleAsObservable()
            .Subscribe(_ => Debug.Log("Became Visible"));
    }
}

 

OnEnableAsObservable

GameObject가 활성화되면 이벤트를 발생시킵니다.

using UniRx;
using UnityEngine;

public class EnableTriggerExample : MonoBehaviour
{
    private void OnEnable()
    {
        this.OnEnableAsObservable()
            .Subscribe(_ => Debug.Log("Object Enabled"));
    }
}

 

OnControllerColliderHitAsObservable

캐릭터 컨트롤러가 충돌체에 부딪힐 때 이벤트를 내보냅니다.

using UniRx;
using UnityEngine;

public class ControllerColliderHitTriggerExample : MonoBehaviour
{
    private void OnControllerColliderHit(ControllerColliderHit hit)
    {
        this.OnControllerColliderHitAsObservable()
            .Subscribe(hitInfo => Debug.Log("Controller Collider Hit"));
    }
}
반응형

댓글