47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using System; // require keep for Windows Universal App
|
|
using UnityEngine;
|
|
|
|
namespace UniRx.Triggers
|
|
{
|
|
[DisallowMultipleComponent]
|
|
public class ObservableJointTrigger : ObservableTriggerBase
|
|
{
|
|
Subject<float> onJointBreak;
|
|
|
|
void OnJointBreak(float breakForce)
|
|
{
|
|
if (onJointBreak != null) onJointBreak.OnNext(breakForce);
|
|
}
|
|
|
|
public IObservable<float> OnJointBreakAsObservable()
|
|
{
|
|
return onJointBreak ?? (onJointBreak = new Subject<float>());
|
|
}
|
|
|
|
|
|
Subject<Joint2D> onJointBreak2D;
|
|
|
|
void OnJointBreak2D(Joint2D brokenJoint)
|
|
{
|
|
if (onJointBreak2D != null) onJointBreak2D.OnNext(brokenJoint);
|
|
}
|
|
|
|
public IObservable<Joint2D> OnJointBreak2DAsObservable()
|
|
{
|
|
return onJointBreak2D ?? (onJointBreak2D = new Subject<Joint2D>());
|
|
}
|
|
|
|
|
|
protected override void RaiseOnCompletedOnDestroy()
|
|
{
|
|
if (onJointBreak != null)
|
|
{
|
|
onJointBreak.OnCompleted();
|
|
}
|
|
if (onJointBreak2D != null)
|
|
{
|
|
onJointBreak2D.OnCompleted();
|
|
}
|
|
}
|
|
}
|
|
} |