InputManager
Edit > Project Settings InputでInspectorが開ける- 各入力のデフォルトを指定できる
- 項目名
HorizontalVerticalとかFireとかの定義もここに入れられる
直近nフレームの入力を得る
UniRxで書くとこうなる
UniRx標準ではCacheに相当する機能を見つけられなかったのでかんたんなOperatorを定義するCacheObservable for UniRx- UniRxでは
Buffer(n, 1)で 表現できると教えていただいたオーバーロードでwindow幅を指定できるので、Buffer(3,1)とかやってみるのはどうでしょうか?
— とり(torisoup) (@toRisouP) 2018年6月12日
ここでは直近2フレームをキャッシュする
- データが A,B,C,D,E,F,G... と流れてくる場合
- A,B > B,C > C,D... のように直近n個をキャッシュする
入力を開始した瞬間入力を終了した瞬間直近の行動をチェックして格ゲーのコマンドのように扱うようなことを行う
gameObject.UpdateAsObservable()
.Select(_ => new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")))
.ObserveOnMainThread(MainThreadDispatchType.FixedUpdate)
.Buffer(2, 1)
.Subscribe(Lifecycle, list => Walk(list[0], list[1]));