-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,3 +8,9 @@ Temp | |
/src/src.userprefs | ||
/*.unitypackage | ||
src/\.vs/ | ||
|
||
dist/ | ||
|
||
src/.idea/ | ||
|
||
src/Logs/ |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
using System.Collections.Generic; | ||
using System; | ||
using BindingsRx.Filters; | ||
using UniRx; | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,8 @@ | ||
using UniRx; | ||
|
||
| ||
namespace BindingsRx.Extensions | ||
{ | ||
public static class IReactivePropertyExtensions | ||
{ | ||
public static ReactiveProperty<string> ToTextualProperty<T>(this IReactiveProperty<T> nonStringProperty) | ||
{ return nonStringProperty.Select(x => x.ToString()).ToReactiveProperty(); } | ||
|
||
} | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
#if !(UNITY_METRO || UNITY_WP8) | ||
|
||
#if UNITY_2018_3_OR_NEWER | ||
#pragma warning disable CS0618 | ||
#endif | ||
|
||
using UnityEngine; | ||
|
||
namespace UniRx.Examples | ||
{ | ||
// sample script, attach your object. | ||
public class Sample01_ObservableWWW : MonoBehaviour | ||
{ | ||
void Start() | ||
{ | ||
// Basic: Download from google. | ||
{ | ||
ObservableWWW.Get("http://google.co.jp/") | ||
.Subscribe( | ||
x => Debug.Log(x.Substring(0, 100)), // onSuccess | ||
ex => Debug.LogException(ex)); // onError | ||
} | ||
|
||
// Linear Pattern with LINQ Query Expressions | ||
// download after google, start bing download | ||
{ | ||
var query = from google in ObservableWWW.Get("http://google.com/") | ||
from bing in ObservableWWW.Get("http://bing.com/") | ||
select new { google, bing }; | ||
|
||
var cancel = query.Subscribe(x => Debug.Log(x.google.Substring(0, 100) + ":" + x.bing.Substring(0, 100))); | ||
|
||
// Call Dispose is cancel downloading. | ||
cancel.Dispose(); | ||
} | ||
|
||
// Observable.WhenAll is for parallel asynchronous operation | ||
// (It's like Observable.Zip but specialized for single async operations like Task.WhenAll of .NET 4) | ||
{ | ||
var parallel = Observable.WhenAll( | ||
ObservableWWW.Get("http://google.com/"), | ||
ObservableWWW.Get("http://bing.com/"), | ||
ObservableWWW.Get("http://unity3d.com/")); | ||
|
||
parallel.Subscribe(xs => | ||
{ | ||
Debug.Log(xs[0].Substring(0, 100)); // google | ||
Debug.Log(xs[1].Substring(0, 100)); // bing | ||
Debug.Log(xs[2].Substring(0, 100)); // unity | ||
}); | ||
} | ||
|
||
// with Progress | ||
{ | ||
// notifier for progress | ||
var progressNotifier = new ScheduledNotifier<float>(); | ||
progressNotifier.Subscribe(x => Debug.Log(x)); // write www.progress | ||
|
||
// pass notifier to WWW.Get/Post | ||
ObservableWWW.Get("http://google.com/", progress: progressNotifier).Subscribe(); | ||
} | ||
|
||
// with Error | ||
{ | ||
// If WWW has .error, ObservableWWW throws WWWErrorException to onError pipeline. | ||
// WWWErrorException has RawErrorMessage, HasResponse, StatusCode, ResponseHeaders | ||
ObservableWWW.Get("http://www.google.com/404") | ||
.CatchIgnore((WWWErrorException ex) => | ||
{ | ||
Debug.Log(ex.RawErrorMessage); | ||
if (ex.HasResponse) | ||
{ | ||
Debug.Log(ex.StatusCode); | ||
} | ||
foreach (var item in ex.ResponseHeaders) | ||
{ | ||
Debug.Log(item.Key + ":" + item.Value); | ||
} | ||
}) | ||
.Subscribe(); | ||
} | ||
} | ||
} | ||
} | ||
|
||
#endif | ||
|
||
#if UNITY_2018_3_OR_NEWER | ||
#pragma warning restore CS0618 | ||
#endif |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
using UnityEngine; | ||
using UniRx.Triggers; // Triggers Namepsace | ||
using System; | ||
|
||
namespace UniRx.Examples | ||
{ | ||
public class Sample02_ObservableTriggers : MonoBehaviour | ||
{ | ||
void Start() | ||
{ | ||
// Get the plain object | ||
var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); | ||
|
||
// Add ObservableXxxTrigger for handle MonoBehaviour's event as Observable | ||
cube.AddComponent<ObservableUpdateTrigger>() | ||
.UpdateAsObservable() | ||
.SampleFrame(30) | ||
.Subscribe(x => Debug.Log("cube"), () => Debug.Log("destroy")); | ||
|
||
// destroy after 3 second:) | ||
GameObject.Destroy(cube, 3f); | ||
} | ||
} | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) | ||
|
||
using UnityEngine; | ||
using UniRx.Triggers; // for enable gameObject.EventAsObservbale() | ||
|
||
namespace UniRx.Examples | ||
{ | ||
public class Sample03_GameObjectAsObservable : MonoBehaviour | ||
{ | ||
void Start() | ||
{ | ||
// All events can subscribe by ***AsObservable if enables UniRx.Triggers | ||
this.OnMouseDownAsObservable() | ||
.SelectMany(_ => this.gameObject.UpdateAsObservable()) | ||
.TakeUntil(this.gameObject.OnMouseUpAsObservable()) | ||
.Select(_ => Input.mousePosition) | ||
.RepeatUntilDestroy(this) | ||
.Subscribe(x => Debug.Log(x), ()=> Debug.Log("!!!" + "complete")); | ||
} | ||
} | ||
} | ||
|
||
#endif |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.