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

API リファレンス

PL_PlayerTags は、ミニゲーム、カスタムドア、実績システムなど、他の Udon スクリプトが特別な権限なしにプレイヤーのタグを付与・剥奪できるよう、小さな公開 API を提供します。

備考

これらのメソッドはいずれも、オーナーシップのチェックや権限を必要としません。どのスクリプトからでも、どのクライアント上でも、任意のプレイヤーに対して呼び出せます。タグの所有状態はまったく同期されないため(設定 を参照)、呼び出しの効果は その呼び出しを行ったクライアント自身のプレイヤー に見える範囲にとどまります。全員への同期された告知ではなく、ローカルなクライアント側の演出を想定しています。


メソッド​

AddTag​

プレイヤーにタグを表示し、そのプレイヤーが現在表示しているタグを置き換えます(設定 の「同時に表示できるタグは 1 つだけ」を参照)。タグ名が設定済みのタグと一致しない場合、またはプレイヤーがすでに同じタグを表示している場合は何もしません。

public void AddTag(VRCPlayerApi player, string tagName)

パラメータ:

パラメータ型説明
playerVRCPlayerApiタグを表示する対象のプレイヤー。
tagNamestring表示するタグの名前。

RemoveTag​

プレイヤーのタグを削除しますが、それが指定したタグ名と現在一致している場合にのみ削除します。プレイヤーの現在のタグ(あれば)が一致しない場合は何もしません。これにより、無関係なタグを名前指定で削除しても、たまたま表示されている別のタグを誤って消してしまうことがありません。

public void RemoveTag(VRCPlayerApi player, string tagName)

パラメータ:

パラメータ型説明
playerVRCPlayerApiタグを削除する対象のプレイヤー。
tagNamestring削除が成立するために、現在表示されている必要があるタグの名前。

GetTagCount​

設定されているタグの総数を返します。

public int GetTagCount()

戻り値: Tags リスト にあるタグの数。


GetTagName​

タグの表示名を返します。

public string GetTagName(int index)

パラメータ:

パラメータ型説明
indexint検索するタグのインデックス。

戻り値: そのタグの名前。index が範囲外の場合は ""。


GetTagIndex​

タグの名前からインデックスを検索します。

public int GetTagIndex(string tagName)

パラメータ:

パラメータ型説明
tagNamestring検索するタグの名前。

戻り値: そのタグのインデックス。該当するタグがない場合は -1。


汎用呼び出し用のイベントブリッジ​

スクリプトが PL_PlayerTags を型付きの参照ではなく、汎用的な UdonSharpBehaviour の参照としてしか持っていない場合、AddTag/RemoveTag を引数付きで直接呼び出すことはできません。その場合は、代わりに次のイベントペアを使用してください。

フィールド/メソッド型説明
eventPlayerIdint(public)イベントを発火する前に、SetProgramVariable で対象プレイヤーの ID を設定します。
eventTagNamestring(public)イベントを発火する前に、SetProgramVariable でタグ名を設定します。
AddTagEvent()—SendCustomEvent("AddTagEvent") で発火すると、上記 2 つのフィールドを使って AddTag を呼び出します。
RemoveTagEvent()—SendCustomEvent("RemoveTagEvent") で発火すると、上記 2 つのフィールドを使って RemoveTag を呼び出します。

これらの名前は安定した連携用の契約であり、PL_PlayerTags を汎用的な参照としてしか持たない別アセットから利用する場合でも、安心して前提にできます。