Skip to content
This repository has been archived by the owner on Feb 16, 2024. It is now read-only.

Commit

Permalink
Add joint trigger (OnJointBreak() + OnJointBreak2D())
Browse files Browse the repository at this point in the history
Issue #154
  • Loading branch information
Pedro Lopes authored and Pedro Lopes committed Oct 15, 2017
1 parent 4a12bab commit b91d6d9
Showing 1 changed file with 47 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
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();
}
}
}
}

0 comments on commit b91d6d9

Please sign in to comment.