SyncedTimelineToggle

PlayableDirector の再生をトグル操作で制御し、ON/OFF 状態を全プレイヤーで同期するコンポーネント。ON でタイムラインの先頭から中央まで再生して停止し、OFF で中央から末尾まで再生する。MashiroTimelineToggleExclusiveGroup で複数のトグルを排他(同時に ON は 1 つ)にできる。

構成

ファイル 役割
MashiroTimelineToggle.cs / .asset 1 本のタイムラインの ON/OFF 再生・ボタン色・同期
MashiroTimelineToggleExclusiveGroup.cs / .asset 子階層のトグルの排他制御・同期

依存

仕様

タイムラインの区間

MashiroTimelineToggle

MashiroTimelineToggleExclusiveGroup

Inspector

MashiroTimelineToggle

フィールド 型 既定値 必須 内容
timeline PlayableDirector なし ○ 制御するタイムライン
activeColor Color (0.69, 0.239, 0.016, 1) – ON 時のボタン色
inactiveColor Color (0, 0, 0, 1) – OFF 時のボタン色
useGameObjectNameForLabel bool true – 自身または子の TextMeshProUGUI に GameObject 名を表示する

MashiroTimelineToggleExclusiveGroup

フィールド 型 既定値 必須 内容
crossFadeDelay float 0.1 – ON のトグルを OFF にしてから新しいトグルを ON にするまでの秒数

toggles(MashiroTimelineToggle[])は [HideInInspector]。Start 時に子階層から収集した値で上書きされる。

API リファレンス

MashiroTimelineToggle

UI へ手配線するもの:

シグネチャ 用途 呼び出し種別
void OnButtonClick() ON/OFF を切り替える(グループ所属時はグループへ委譲) Button.OnClick から配線

内部連携用(配線不要):

シグネチャ 用途 呼び出し種別
void Interact() OnButtonClick() と同じ。Button がある場合は何もしない VRChat が呼ぶ(Use 操作)
void SetState(bool value) state を設定し、ON/OFF の区間を再生する。同期は要求しない グループ・他 Udon が呼ぶ
bool State { get; set; } state の取得。設定は SetState(value) と同じ 同期変数の FieldChangeCallback(内部専用)
void InitializeWithGroup(MashiroTimelineToggleExclusiveGroup exclusiveGroup) 所属グループを設定する グループが Start 時に呼ぶ

MashiroTimelineToggleExclusiveGroup

内部連携用(配線不要):

シグネチャ 用途 呼び出し種別
void OnToggleClicked(MashiroTimelineToggle toggle) 押されたトグルに応じて activeIndex を更新し同期する 所属トグルが呼ぶ
int ActiveIndex { get; set; } activeIndex の取得。設定時に排他切替を実行する 同期変数の FieldChangeCallback(内部専用)
void _DelayedActivate() activeIndex のトグルを ON にする SendCustomEventDelayedSeconds から呼ばれる(内部専用)

ライセンス

MIT License(リポジトリルートの LICENSE.md を参照)。


本ドキュメントは AI を用いて作成しています。不明点・記載の誤りなどありましたら、下記までお問い合わせください。