facebook twitter hatena line email

Unity/UniRx/移動検知

提供: 初心者エンジニアの簡易メモ
2022年8月21日 (日) 11:02時点におけるAdmin (トーク | 投稿記録)による版 (Observable.EveryUpdateを使う方法)

移動: 案内検索

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);