「Unity/UniRx/移動検知」の版間の差分

提供: 初心者エンジニアの簡易メモ
ナビゲーションに移動 検索に移動
ページの作成:「==Observable.EveryUpdateで判定== <pre> zが0以下のときにz10に移動 <pre> var observable = Observable.EveryUpdate() .Where(_ => obj != null && obj.t...」
 
編集の要約なし
1行目: 1行目:
==Observable.EveryUpdateで判定==
==Observable.EveryUpdateを使う方法==
<pre>
<pre>
zが0以下のときにz10に移動
zが0以下のときにz10に移動
15行目: 15行目:
             .AddTo(gameObject);
             .AddTo(gameObject);
</pre>
</pre>
==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);

2022年8月20日 (土) 23:41時点における版

Observable.EveryUpdateを使う方法

zが0以下のときにz10に移動
<pre>
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);