UniRx 에셋 추가
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
using System; // require keep for Windows Universal App
|
||||
using UnityEngine;
|
||||
|
||||
namespace UniRx.Triggers
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public class ObservableTriggerTrigger : ObservableTriggerBase
|
||||
{
|
||||
Subject<Collider> onTriggerEnter;
|
||||
|
||||
/// <summary>OnTriggerEnter is called when the Collider other enters the trigger.</summary>
|
||||
void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (onTriggerEnter != null) onTriggerEnter.OnNext(other);
|
||||
}
|
||||
|
||||
/// <summary>OnTriggerEnter is called when the Collider other enters the trigger.</summary>
|
||||
public IObservable<Collider> OnTriggerEnterAsObservable()
|
||||
{
|
||||
return onTriggerEnter ?? (onTriggerEnter = new Subject<Collider>());
|
||||
}
|
||||
|
||||
Subject<Collider> onTriggerExit;
|
||||
|
||||
/// <summary>OnTriggerExit is called when the Collider other has stopped touching the trigger.</summary>
|
||||
void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (onTriggerExit != null) onTriggerExit.OnNext(other);
|
||||
}
|
||||
|
||||
/// <summary>OnTriggerExit is called when the Collider other has stopped touching the trigger.</summary>
|
||||
public IObservable<Collider> OnTriggerExitAsObservable()
|
||||
{
|
||||
return onTriggerExit ?? (onTriggerExit = new Subject<Collider>());
|
||||
}
|
||||
|
||||
Subject<Collider> onTriggerStay;
|
||||
|
||||
/// <summary>OnTriggerStay is called once per frame for every Collider other that is touching the trigger.</summary>
|
||||
void OnTriggerStay(Collider other)
|
||||
{
|
||||
if (onTriggerStay != null) onTriggerStay.OnNext(other);
|
||||
}
|
||||
|
||||
/// <summary>OnTriggerStay is called once per frame for every Collider other that is touching the trigger.</summary>
|
||||
public IObservable<Collider> OnTriggerStayAsObservable()
|
||||
{
|
||||
return onTriggerStay ?? (onTriggerStay = new Subject<Collider>());
|
||||
}
|
||||
|
||||
protected override void RaiseOnCompletedOnDestroy()
|
||||
{
|
||||
if (onTriggerEnter != null)
|
||||
{
|
||||
onTriggerEnter.OnCompleted();
|
||||
}
|
||||
if (onTriggerExit != null)
|
||||
{
|
||||
onTriggerExit.OnCompleted();
|
||||
}
|
||||
if (onTriggerStay != null)
|
||||
{
|
||||
onTriggerStay.OnCompleted();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user