View on GitHub

NeosVRJP-Techbook

NeosVRJP-Techbook (NeosVRの応用編・技術ノート)

ダブルクリックを判定する

概要

スロットをアクティブにしてセッションに現れさせるではメニューボタンのダブルクリックを判定するLogiXがありました。ここではれにうむ(@rhenium_vrc)さんが提案したよりシンプルなLogiXを紹介します。

解説

PulseはIfから引き出したノードで、ここをクリックします。Standard Controllerの出力をImpulseに変換してつなげばメニューボタンのクリックを読み取れます。(「スロットをアクティブにしてセッションに現れさせる」参照)

最初のImpulseがIfにたどり着く時には、Elapsed Timeはとても大きい数字なっています。したがって、IfはFalseとなって、下のノードにImpulseを流します。

すると、Elapsed Timeは0にリセットされます。その結果<はTureを出します。

その後、0.3秒以内に次のImpulseがIfに届けば、上のノードにImpulseが出力されます。

pic

おわりに

れにうむさんによれば、前のLogiXでは三回つづけてクリックするとかすると誤動作するとかで、このシンプルな形になったそうです。

ちなみにRelayを使っているのは、直接つなぐと、平面にLogiXが展開できないので、わかりやすさのために入れています。

また背景もワールドのごちゃごちゃした背景を消すために、ボード(DevTool → Create new… → 3D Model → Grid)をセッション内にスポーンしてくださいました。 

関連するノード

If, Elapsed Time, Relay