エクスペリエンス中に友達を見つけるのは困難です。FriendsLocator開発者モジュール は、プレイヤーが場プレース内の友達に簡単に見つけてテレポートできます。
モジュール使用
インストール
エクスペリエンスで FriendsLocator モジュールを使用するには:
モデル ソートが選択されていることを確認してから、 すべてを表示 ボタンをクリックして、 カテゴリ のための 1>ボタン1> をクリックします。
デバッグモジュール タイルを見つけてクリックします。
友達ロケーターモジュールを 見つけ 、クリックするか、3D ビューにドラッグアンドドロップします。
In the エクスプローラー ウィンドウ, move the entire FriendsLocator model into ServerScriptService . エクスペリエンスを実行すると、モジュールはさまざまなサービスに分配され、実行を開始します。
スタジオでテスト
Studio のモジュールをテストするには、 FriendsLocator モジュールはソロプレイテスト中に複数のクライアントで実行する必要があります。
In StarterPlayerScripts で、新しい LocalScript を作成し、 友達ロケーターを構成 を名前変更します。
新しい ConfigureFriendsLocator スクリプトに以下のコードを貼り付けます。showAllPlayers 設定は、configure 機能内の 1> locators1> がすべてのユーザーをテスト中に Studio で表示されることを確認しますが、公開された場プレースではありません。
ローカルスクリプト - 友達ロケータを構成するlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Studio でデバッグを有効にする})[テスト] タブから、クライアントとサーバーの次のコンビネーションを選択し、開始 ボタンをクリックします。スタジオの 3つの新しいインスタンスがオープンします。1つのシミュレートサーバーと 2つのシミュレートクライアント。
クライアント Studio インスタンスの 1つに移動し、他のキャラクターから 100 スタッドの距離を移動すると、 場所を特定するアイコン が頭上に表示されるでしょう。
イベントに接続する
FriendsLocator モジュールは、ユーザーがロケーターアイコンと対話するときにカスタム動作を紹介するために イベント を露出します。
Make sure that you've created the ConfigureFriendsLocator script outlined in Studioでテスト .
スクリプトに8行と11-13行を追加します:
ローカルスクリプト - 友達ロケータを構成するlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Studio でデバッグを有効にするteleportToFriend = false, -- アイコンクリック/タップでテレポートを防止})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)マルチクライアントテスト を実行し、別のキャラクターのロケーターアイコンをクリックします。注意に、キャラクターはその場所にテレポートしませんが、イベントがトリガーされて、アイコンクリックをカスタムハンドリングできるようになります。
カスタムロケータ UI
デフォルトスタイルがエクスペリエンスに合わない場合は、デフォルトのアバターポートレート UI を自分の UI に置き換えることができます。
デフォルトの UI を置き換えるには:
新しい ScreenGui インスタンスを StarterGui コンテナ内に作成します。
終了したら、無効にする親 ScreenGui を、必要になるまでモジュールに表示しないようにします。
(オプション) 友達のアバターポートレートと DisplayName をカスタム UI のどこかに表示したい場合は、 FriendLocator フレーム内に次のインスタンスを置くことができます。
- 名前 ImageLabel の Class.ImageLabel。
- Class.TextLabel の名前の DisplayName 。
モジュールは、これらのアイテムを検索し、それぞれの友達のアバターポートレートと/またはディスプレイ名を表示します。
API リファレンス
機能
環境設定
figfig テーブルの次のキー/値を通じて、デフォルトの設定オプションをオーバーライドします。
キー | 説明 | デフォルト |
---|---|---|
alwaysOnTop | 如果 true 、上下文をすべて上に表示し、3D 世界のオブジェクトによってブロックされるのを防ぐ。 | はい |
showAllPlayers | True が表示されている場合、すべてのプレイヤーの場所が、友達だけではなく、表示されます。これは、Studio のモジュールの機能性を確認するのに役立つことがあります。 | 偽 |
teleportToFriend | ロケーターアイコンをクリックまたはタップすると、プレイヤーのキャラクターが友達の場所にテレポートされます。 | はい |
thresholdDistance | この距離のロケーターアイコンが表示されるカメラの距離の上限。この距離以下の友達は、アイコンを表示しません。 | 100 |
maxLocators | 指定された時間に表示されるロケーターアイコンの最大数。 | 10 |
ローカルスクリプト - 友達ロケータを構成する
local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
イベント
クリックしました
ロケーターアイコンがローカルプレイヤーによってクリック/アクティブになると、このイベントは LocalScript 内のみに接続できます。
パラメータ | |
---|---|
プレイヤー: Player | ロケーターアイコンが属するプレーヤー。 |
playerCFrame: CFrame | CFrame のプレイヤーの Humanoid.RootPart にロケーターアイコンがある。 |
ローカルスクリプト
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
local localPlayer = Players.LocalPlayer
FriendsLocator.clicked:Connect(function(player, playerCFrame)
-- ターゲットの場所でストリーミングをリクエストする
if workspace.StreamingEnabled then
local success, errorMessage = pcall(function()
localPlayer:RequestStreamAroundAsync(playerCFrame.Position)
end)
if not success then
print(errorMessage)
end
end
print("You clicked on locator icon for", player.DisplayName, "at position", playerCFrame.Position)
end)
透明度変更
ロケーターアイコンがローカルプレイヤーの画面に表示されるとき/隠れるときに発生します。このイベントは、LocalScript にのみ接続できます。
パラメータ | |
---|---|
プレイヤー: Player | Player ロケーターアイコンが属するオブジェクト。 |
playerCFrame: CFrame | CFrame のプレイヤーの Humanoid.RootPart にロケーターアイコンがある。 |
isVisible: boolean | ロケーターアイコンが現在、ローカルプレイヤーの画面に表示されているかどうか。これは、true がまだ alwaysOnTop であり、ロケーターはオブジェクトの後ろの 3D 世界でレンダリングされます。 |
ローカルスクリプト
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("Visibility of locator icon for", player.DisplayName, ":", isVisible)
end)