facebook twitter hatena line email

「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月21日 (日) 08: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);