You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.2 KiB
47 lines
1.2 KiB
1 year ago
|
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();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|