InputManager
Edit > Project Settings Input
でInspectorが開ける- 各入力のデフォルトを指定できる
- 項目名
Horizontal
Vertical
とか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]));