facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==Observable.EveryUpdateで判定== <pre> zが0以下のときにz10に移動 <pre> var observable = Observable.EveryUpdate() .Where(_ => obj != null && obj.t...」)
 
(Observable.EveryUpdateを使う方法)
 
(同じ利用者による、間の3版が非表示)
行1: 行1:
==Observable.EveryUpdateで判定==
+
==Observable.EveryUpdateを使う方法==
<pre>
+
 
zが0以下のときにz10に移動
 
zが0以下のときにz10に移動
 
<pre>
 
<pre>
 
var observable = Observable.EveryUpdate()
 
var observable = Observable.EveryUpdate()
            .Where(_ => obj != null && obj.transform.position.z < 0f)
+
  .Where(_ => obj != null && obj.transform.position.z < 0f)
            .Subscribe(_ =>
+
  .Subscribe(_ =>
            {
+
  {
                obj.transform.position = new Vector3(
+
      obj.transform.position = new Vector3(
                    obj.transform.position.x,
+
          obj.transform.position.x,
                    obj.transform.position.y,
+
          obj.transform.position.y,
                    obj.transform.position.z + 10f
+
          obj.transform.position.z + 10f
                    );
+
          );
            })
+
  })
             .AddTo(gameObject);
+
  .AddTo(gameObject);
 +
</pre>
 +
 
 +
==ObserveEveryValueChangedを使う方法==
 +
<pre>
 +
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);
 
</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);