「Unity/UniRx/移動検知」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→ObserveEveryValueChangedを使う方法) |
(→Observable.EveryUpdateを使う方法) |
||
(同じ利用者による、間の1版が非表示) | |||
行1: | 行1: | ||
==Observable.EveryUpdateを使う方法== | ==Observable.EveryUpdateを使う方法== | ||
− | |||
zが0以下のときにz10に移動 | zが0以下のときにz10に移動 | ||
<pre> | <pre> | ||
var observable = Observable.EveryUpdate() | var observable = Observable.EveryUpdate() | ||
− | + | .Where(_ => obj != null && obj.transform.position.z < 0f) | |
− | + | .Subscribe(_ => | |
− | + | { | |
− | + | obj.transform.position = new Vector3( | |
− | + | obj.transform.position.x, | |
− | + | obj.transform.position.y, | |
− | + | obj.transform.position.z + 10f | |
− | + | ); | |
− | + | }) | |
− | + | .AddTo(gameObject); | |
</pre> | </pre> | ||
2022年9月4日 (日) 16:10時点における最新版
Observable.EveryUpdateを使う方法
zが0以下のときにz10に移動
var observable = Observable.EveryUpdate() .Where(_ => obj != null && obj.transform.position.z < 0f) .Subscribe(_ => { obj.transform.position = new Vector3( obj.transform.position.x, obj.transform.position.y, obj.transform.position.z + 10f ); }) .AddTo(gameObject);
ObserveEveryValueChangedを使う方法
obj.transform.ObserveEveryValueChanged(transform => transform.position.z) .Subscribe(z => { if (z < 0f) { obj.transform.position = new Vector3( obj.transform.position.x, obj.transform.position.y, obj.transform.position.z + 10f ); } }) .AddTo(gameObject);