ダブルクリックで1回ジャンプを行うようにしたい
■UniRxでダブルクリック
https://qiita.com/miyaoka/items/6a643434a3f1548fb489
■UniRxでダブルクリック判定を3種類の方法で書いてみる
https://qiita.com/Yumuru/items/8a71545d3a21e956e81d
上記参考にさせて頂いたHP様になります。
UniRx初めて触らせて頂いたのですが、ネット上の資料が少なくまた、
自分がプログラム初心者でLINQを使うのが今回が初めてとなっております。
trueの時1度ジャンプさせたいのですが、もう一度クリックしないとDoubleTap()が動かないので、
ジャンプし続けるという動作になってしまっております。Update()内に入れても動きは変わりませんでした。
こちら、1度のダブルタップ後どこかしらで値をfalseにできれば正常に動くのではないかと思います。
該当のソースコード
// Start is called before the first frame update void Start() { DoubleTap (); } void DoubleTap(){ //UniRxでダブルクリック var click = Observable .EveryUpdate() .Where(_ => Input.GetMouseButtonDown(0)); //UniRxでダブルクリック判定を3種類の方法で書いてみる var dClick3 = click .Select (_ => false).Take (1) .Concat(click.Select(_ => true) .Take(TimeSpan.FromSeconds(0.2f)).Take(1)) .RepeatSafe(); var doubleClick = dClick3; doubleClick.Subscribe (b => Jump (b)); } public void Jump(bool bjump){ Debug.Log (bjump); if (bjump) { avspushJumpOnes = true; avspushJumpDown = true; bjump = false; } else { avspushJumpUp = true; } }
試したこと
↓※1 Trueになったあとにすぐfalseを入れて1度だけtrueを返すようにしようとしましたがfalseとしか返ってきませんでした。
また、bjump = false;でジャンプ後にジャンプしないように変更してもUniRxのtrueが効いており変わりませんでした。
var dClick3 = click .Select (_ => false).Take (1) .Concat(click.Select(_ => true) .Take(TimeSpan.FromSeconds(0.2f)).Take(1)) //↓※1 .Select (_ => false).Take (1) .RepeatSafe(); var doubleClick = dClick3; doubleClick.Subscribe (b => Jump (b));
お手数をお掛け致します。ご教授の程よろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。