Write Latch (LogiXノード)
Write Latch | ||
---|---|---|
![]() | ||
Inputs | ||
Impulse | Set | |
Impulse | Reset | |
dummy | SetValue | |
dummy | ResetValue | |
Outputs | ||
IValue`1 | Target | |
Impulse | OnSet | |
Impulse | OnReset |
Write Latchノードは、Set
やReset
にインパルスを入力すると、参照されている Target
値を入力 SetValue
やResetValue
でそれぞれ上書きするノードです。
使用方法
ノードブラウザから生成されたとき、SetValue
とResetValue
入力はダミーのデータ型を持っています。これは、有効な入力が接続されたときに、入力データ型に一致するようにオーバーロードされます。これら2つの入力の型と、参照されているTarget
の型は一致しなければなりません。
OnSet
出力は、Set
にインパルスを入力した後にインパルスを出力します。これは、有効なTarget
があるかどうか、Target
が実際に書き込まれたかどうかに関係なく発生します。これは、Set
に到着したインパルスの連鎖を継続します。
OnReset
出力は、Reset
にインパルスを入力した後にインパルスを出力します。これは有効なTarget
があるかどうか、Target
に実際に書き込まれたかどうかに関係なく発生します。これはReset
に到着したインパルスの連鎖を継続させます。
Write LatchノードでVariableノードやComponentフィールドなどの値を変更すると、データモデルの変更が行われ、セッション内の他のユーザーと同期されます。このため、1つのクライアントが更新中に同じターゲットに対して複数の書き込みを行った場合、最終的な値のみが送信されることに注意してください。さらに、値が更新の開始時に持っていた値にリセットされた場合、変更はブロードキャストされません。この同期処理のため、絶対に必要な場合を除き、非常に定期的に (たとえばアップデートのたびに) 値を書き込むことは望ましくありません。不必要なネットワークトラフィックを避けるため、連続的に変化する値には代わりにドライブシステムを使用する方が一般的によいでしょう。ソース.
一般的に、Write/Write Latch ノードでは、コンポーネントまたはスロットのフィールドは値型(bools、ints、string、float など)のみ書き込み可能ですが、参照型フィールド(スロット、ユーザー、IAssetProvider<AudioClip> など)はWrite Refが必要です。しかし、参照型 LogiX 変数ノードに Write/Write Latch ノードを使用して書き込むことは可能ですが、Write Ref では不可能です。また、入力の SetValue
と ResetValue
が参照データ型ではなく RefID の場合、Write/Write Latch を使用して参照型フィールドに書き込むことが可能です - しかし、生の RefID を扱うことは一般的にお勧めできません。
例
これらの 2 つの画像は、1 つの Write Latch ノードや2 つの Writeノードを使用した LogiX セットアップを例示しています。OnFail
インパルス出力の存在と OnSet
と OnReset
と比較した OnDone
と OnFail
の異なる動作は、二つの設定が全く同じではないことに注意してください。
ノードメニュー
Actions | ||||||
---|---|---|---|---|---|---|
Back | -- | ++ | Drive | Drive Playback | Tween | Write |
Write Latch | Write Ref | Write Ref Latch |