アバターコンテキストメニュー (ACM) は、ユーザーが互いに対話するのをより簡単にする。ACM がエクスペリエンスで有効になっていると、ユーザーは他のユーザーのキャラクターに歩いて行き、クリックして小さなメニューを開くことができます。プレイヤーは友達リクエストを送信、
エクスペリエンスで ACM を有効化した後、次の方法で ACM をカスタマイズできます:
- プログラマミングで ACM を開くと閉じる 特定のユーザーのために。
- ACM の外観をカスタマイズしてユニークなユーザーインターフェイスを作成します。
アバターコンテキストメニューを有効化する
アバターコンテキストメニューは、StarterGui:SetCore() オプション "AvatarContextMenuEnabled" を使用して有効にする必要があります。ACM は、LocalScript で使用することが最善です。
次のコードサンプルを使用して、ACM を LocalScript に有効化します:
-- ローカルスクリプトで実行することを想定しています "StarterPlayerScripts" 内local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
ACM が有効かどうかを検出する必要がある場合は、次のコードを使用して、ACM の現在の状態についてボールーンを返すことができます:
--ACM が現在有効であるかを示すブーレンを返します。StarterGui:GetCore(AvatarContextMenuEnabled)
ACM の開閉
有効にすると、StarterGui で ACM プログラムをプログラマチックに開くと閉じることができます。
ACM をプログラマブルに開くには、次のコードを使用してください:
-- StarterGui:SetCore を使用してターゲットプレイヤーが有効なプレイヤーオブジェクトである場合StarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
ACM をプログラマティックに閉じるには、次のコードを使用してください:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
メニューオプション
スクリプトで 追加 と 削除 アクションを通過して、メニューに次のオプションがあります。デフォルトでは、メニューに次のオプションがあります:
メニューオプション | 説明 |
---|---|
フレンド | 選択したユーザーにフレンドリクエストを送信します。 |
チャット | インエクスペリエンスチャットで選択したユーザーとプライベートなチャットを開きます。 |
表示 | ユーザーの外外見を査視するウィンドウを開きます。 |
ウェーブ | 選択したユーザーにウェーブアニメーションを開始します。 |
ACM が開いたら、ユーザーはキャラクター選択カードにスクロールして、他のユーザーを選択できます。キャラクターは、選択されたキャラクターに基づいて距離を排序します。メニューは、開いたときにのみ更新され、リストのユーザーがスクロールすると再読み込まれます。
メニューオプションを追加する
有効にすると、エクスペリエンス固有のアクションが ACM に追加されます。たとえば、エクスペリエンスはトレードリクエスト、追加パーティーオプション、その他の特別なインタラクションを許可するかもしれません。
次の例では、アバターコンテキストメニューにカスタムアクションを追加する方法を示しています:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- 「BindableEvent」に関数を接続する
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- この時点で、リモート関数に InvokeServer() を呼び出して、選択サーバーに警告することができます
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- 「AddAvatarContextMenuOption」を使用して、「SetCore」でオプションを追加する
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
メニューオプションを削除する
カスタムアクション名を参照するか、デフォルトの [Add Fチャットiend] 、[Chat] 、[View] 、[Wave] オプションを参照して、ACM からカスタムオプションを削除できます。
次のコードを使用して、デフォルトおよびカスタムメニューオプションを削除します:
-- 「カスタム ACM アクション」オプションを削除StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- AvatarContextMenuOption.Friend 配列を参照して、デフォルトの「友達」オプションを削除しますStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
メニューの外観をカスタマイズ
アバターコンテキストメニューの外観を変更するには、StarterGui:SetCore() を呼び出し、AvatarContextMenuTheme オプションを提供して、メニューの外外見を調整するパラメーターと値のテーブルを提供します。
ACM ユーザーインターフェイスには、次のセクションが含まれています:
A. 名前タグ: インタラクトされるキャラクターのユーザー名。
B. ボタンフレーム: すべての ACM ボタンを含みます。
C. ボタン: デフォルトまたはカスタム ACM アクションの個々のボタン。
外観パラメータ
これらは ACM のカスタマイズパラメータです:
背景
背景色 | ACM の全体的なバックグラウンドのための Color3 。(最も有用な場合は、バックグラウンド画像を使用しないでください)。 |
背景透明度 | ACM の全体的な背景の透明値 (0-1) (背景画像を使用していないときの最も便利な使用方法)。 |
背景画像 | ACM バックグラウンドの画像の有効なアセット ID。 |
背景画像の透明度 | 背景画像の透明値 (0-1)。 |
背景画像スケールタイプ | 背景画像のスケーリングのための Enum.ScaleType エンベント。 |
バックグランド画像スライスセンター | A Rect 、BackgroundImageScaleType を Enum.ScaleType.Slice に設定したときに、九分割画像の中央を指定します。 |
名前タグ
ボタンフレーム
ボタンフレームの色 | アクションボタンが含まれるセクション (フレーム) の Color3 。 |
ボタンフレームの透明度 | ボタンフレームセクションの透明値 (0-1)。 |
ボタン
ボタンの色 | ACM アクションボタンの背景のための Color3。 |
ボタンの透明度 | アクションボタンの背景色の透明値 (0-1)。 |
ボタンのホバーカラー | アクションボタンの「ホバー」状態のための Color3 。 |
ボタンのホバートランスペアリング | アクションボタンの「ホバー」色の透明値 (0-1)。 |
ボタンのアンダーラインの色 | 各アクションボタンを分離する薄いラインのための Color3。 |
ボタン画像 | ボタンの背景に使用する画像の有効なアセットID。 |
ボタン画像スケールタイプ | ボタン画像スケーリングのための Enum.ScaleType 枚。 |
ボタン画像スライスセンター | ButtonImageScaleType を Rect に設定したとき、九分割画像の中央を指定する。 |
テキスト
フォント | 名前タグとボタンテキストのための Enum.Font 配列値。 |
テキストの色 | ACM 内のすべてのテキストに対する Color3。 |
テキストスケール | 各要素のデフォルトのテキストサイズをスケールするフロート値。 |
さまざまな画像
メニュー画像を終了 | ACM のボタンの近くの画像のアセット ID。 |
スクロール左画像 | カーネル「スクロール左」ボタンの画像のID。 |
スクロール右画像 | カーネル「スクロール右」ボタンの画像の有効なアセットID。 |
選択したキャラクター
SelectedCharacterIndicator | キャラクターの頭上に浮かぶ MeshPart は、選択されていることを示すために使用されます。 |
サイズと位置
サイズ | ACM の全体サイズのための UDim2。 |
最小サイズ | ACM の最小サイズを指定する Vector2。 |
最大サイズ | ACM の最大サイズを指定する Vector2。 |
アスペクト比率 | ACM の相対幅と高さを指定する浮き値。 |
アンカーポイント | ACM の AnchorPoint の。 |
オンスクリーンポジション | A UDim2 は、ACM の画面位置を指定します (開いたときにツインされる位置)。 |
オフスクリーンポジション | A UDim2 は、ACM のオフスクリーンポジションを指定します (開いた/閉じたときにツイーンするポジション)。 |
カスタマイズの例
次のコードサンプルは、いくつかの基本パラメータを使用して ACM テーマをカスタマイズします:
local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuTheme", {BackgroundImage = "",BackgroundTransparency = 0.5,BackgroundColor = Color3.fromRGB(111, 145, 242),NameTagColor = Color3.fromRGB(0, 0, 200),NameUnderlineColor = Color3.fromRGB(213, 233, 255),ButtonFrameColor = Color3.fromRGB(15, 24, 65),ButtonFrameTransparency = 0.2,ButtonUnderlineColor = Color3.fromRGB(213, 233, 255),Font = Enum.Font.SciFi})