「Unity/UniRx/AsObservable」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==UniRxとは== UnityでもReactiveExtensionsを使えるように移植したもの ==UniRxインストール== https://assetstore.unity.com/packages/tools/integration/...」) |
|||
行6: | 行6: | ||
+ | ==サンプル== | ||
+ | ボタンクリックで、カウントアップする | ||
+ | |||
+ | AsObservableサンプル | ||
+ | <pre> | ||
+ | public class SampleScene : MonoBehaviour | ||
+ | { | ||
+ | void Start() | ||
+ | { | ||
+ | Button button = GameObject.Find("Button").GetComponent<Button>(); | ||
+ | Text text = GameObject.Find("Text").GetComponent<Text>(); | ||
+ | button.onClick.AsObservable() | ||
+ | .Select(_ => 1) | ||
+ | .Scan(0, (element, acc) => element + acc) | ||
+ | .SubscribeToText(text) | ||
+ | .AddTo(gameObject); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | OnClickAsObservableサンプル | ||
+ | <pre> | ||
+ | public class SampleScene : MonoBehaviour | ||
+ | { | ||
+ | void Start() | ||
+ | { | ||
+ | Button button = GameObject.Find("Button").GetComponent<Button>(); | ||
+ | Text text = GameObject.Find("Text").GetComponent<Text>(); | ||
+ | button.OnClickAsObservable() | ||
+ | .Select(_ => 1) | ||
+ | .Scan(0, (element, acc) => element + acc) | ||
+ | .SubscribeToText(text) | ||
+ | .AddTo(gameObject); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
==参考== | ==参考== | ||
https://qiita.com/RyotaMurohoshi/items/01df35f1940e93fbb10d | https://qiita.com/RyotaMurohoshi/items/01df35f1940e93fbb10d |
2021年9月6日 (月) 15:20時点における版
UniRxとは
UnityでもReactiveExtensionsを使えるように移植したもの
UniRxインストール
https://assetstore.unity.com/packages/tools/integration/unirx-reactive-extensions-for-unity-17276
サンプル
ボタンクリックで、カウントアップする
AsObservableサンプル
public class SampleScene : MonoBehaviour { void Start() { Button button = GameObject.Find("Button").GetComponent<Button>(); Text text = GameObject.Find("Text").GetComponent<Text>(); button.onClick.AsObservable() .Select(_ => 1) .Scan(0, (element, acc) => element + acc) .SubscribeToText(text) .AddTo(gameObject); } }
OnClickAsObservableサンプル
public class SampleScene : MonoBehaviour { void Start() { Button button = GameObject.Find("Button").GetComponent<Button>(); Text text = GameObject.Find("Text").GetComponent<Text>(); button.OnClickAsObservable() .Select(_ => 1) .Scan(0, (element, acc) => element + acc) .SubscribeToText(text) .AddTo(gameObject); } }