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
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(); |
|
} |
|
} |
|
} |
|
} |