UniRx 에셋 추가
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace UniRx
|
||||
{
|
||||
/// <summary>
|
||||
/// Notify boolean flag.
|
||||
/// </summary>
|
||||
public class BooleanNotifier : IObservable<bool>
|
||||
{
|
||||
readonly Subject<bool> boolTrigger = new Subject<bool>();
|
||||
|
||||
bool boolValue;
|
||||
/// <summary>Current flag value</summary>
|
||||
public bool Value
|
||||
{
|
||||
get { return boolValue; }
|
||||
set
|
||||
{
|
||||
boolValue = value;
|
||||
boolTrigger.OnNext(value);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setup initial flag.
|
||||
/// </summary>
|
||||
public BooleanNotifier(bool initialValue = false)
|
||||
{
|
||||
this.Value = initialValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set and raise true if current value isn't true.
|
||||
/// </summary>
|
||||
public void TurnOn()
|
||||
{
|
||||
if (Value != true)
|
||||
{
|
||||
Value = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set and raise false if current value isn't false.
|
||||
/// </summary>
|
||||
public void TurnOff()
|
||||
{
|
||||
if (Value != false)
|
||||
{
|
||||
Value = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set and raise reverse value.
|
||||
/// </summary>
|
||||
public void SwitchValue()
|
||||
{
|
||||
Value = !Value;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Subscribe observer.
|
||||
/// </summary>
|
||||
public IDisposable Subscribe(IObserver<bool> observer)
|
||||
{
|
||||
return boolTrigger.Subscribe(observer);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user