メインコンテンツまでスキップ

API リファレンス

Spin Bottle Game のコントローラーは、独自の Udon スクリプトから呼び出せる公開メソッドを提供します。たとえば、同梱の SB_Bottle スクリプトの代わりに、カスタムのインタラクト対象からスピンをトリガーする場合などに使用できます。

Normal(SB_SpinBottleGame)と Lite(SBL_SpinBottleGame)は、それぞれ独立した無関係のクラスです。実際にワールドで使用している方を参照してください。以下で特に断りがない限り、メソッドの形はどちらも同じです。

備考

同梱の SB_Bottle スクリプトは、プレイヤーがボトルにインタラクトするたびにすでに TriggerSpin() を呼び出しています(IsSpining() でガードされているため、スピンが二重にトリガーされることはありません)。具体的な型ではなく Udon の汎用的な変数/イベント API を通じてコントローラーとやり取りするため、同じスクリプトをどちらのバージョンでも変更なしで使用できます。Spin Bottle Game フィールドに、正しいコントローラーを割り当ててください。


メソッド​

SpinBottle​

スピンを開始します。オーナーシップを取得し、直前に着地した座席を新しい文章で埋め直し、誰が回したか、ボトルがどの座席に着地するかを記録し、スピンアニメーションを再生します。

public void SpinBottle(int playerId, int index)

パラメータ:

パラメータ型説明
playerIdintスピンをトリガーしたプレイヤーの VRChat プレイヤー ID。
indexintボトルが着地する対象の座席/文章スロットのインデックス(0〜PLAYER_CAPACITY - 1)。
Normal のみ

Normal バージョンでは、playerId がゲームに参加していない場合、このメソッドは何もしません(プレイヤー管理 を参照)。Lite バージョンにはこのチェックがなく、どのプレイヤー ID でも即座にスピンします。


TriggerSpin​

SB_Bottle のように、汎用的な UdonSharpBehaviour の参照しか持たず SpinBottle を直接呼び出せない呼び出し元向けの、引数なしのエントリポイントです。ローカルプレイヤー のためにランダムな座席でスピンします。

public void TriggerSpin()


IsSpining​

現在スピンが進行中かどうかを返します。

public bool IsSpining()

戻り値: ボトルが回転している間は true。それ以外は false。


FillGameSentences​

ダウンロードした Pastebin のプールから、テーブルのすべての座席に新しいランダムな文章を埋めます。最初のダウンロードが成功した直後に自動で 1 回実行されます。テーブル全体を任意のタイミングで再抽選したい場合は、自分で再度呼び出してください。文章のプールがまだ読み込まれていない場合は何もしません。

public void FillGameSentences()


ResetGame​

着地した文章と最後にスピンしたプレイヤーをクリアし、(Normal のみ)プレイヤーリストも空にします。

public void ResetGame()

Normal のみ

ResetGame は SB_SpinBottleGame にのみ存在します。Lite バージョンにはリセットメソッドがなく、テーブルは各座席に最後に着地した文章を保持し続けます。