プレイヤーの招待プロンプト

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

プレイヤーベースを拡大するためのコモンな プロモーション メソッドに加えて、エクスペリエンス内で 招待プロンプト を直接実装し、プレイヤーが友達を招待し、コーエクスペリエンスゲームプレイを促進することができます。

招待プロンプトシステムには、フォロー中の機能があります:

  • ダイナミックな招待者 — プレイヤーを選択リストから複数の友達を招待するか、特定の友達を招待するように促します。
  • データを発売する — 招待された友達が参加するときに読み込むオプションの データを発売する を含める。 例の使用ケースは、招待された友達をコーディネート場所に移動するか、参加体験をパーソナライズするために Player:GetJoinData() にあります。
  • カスタマイズ可能なテキスト — 招待プロンプトメッセージと通知プロンプトメッセージをカスタマイズします。たとえば、プレイヤーの招待プロンプトメッセージは「あなたの友達を冒アドベンチャーに招待する」と読むことがあり、招待プロンプトメッセージの読み取りメッセージは「

あなたはまた、友達の招待報酬システム を使用して招待者と報酬を追跡し、報酬を報酬で報酬できます。

複数の友達を招待するように招待するように促す
特定の友達を招待するようにプロンプトする

招待オプションを設定

デフォルトでは、プレイヤーのための招待プロンプトは、 招待 ボタンで友達のメニューを表示します。プロンプトメッセージをカスタマイズするには、特定の友達をターゲットにするか、招待にランチャーデータを含める必要があります。ExperienceInviteOptions オブジェクトを設定する必要があります。

プロパティタイプ説明
PromptMessage文字列送信プレイヤーの招待プロンプトに表示されるカスタムテキスト、たとえば "Ask your friends to join the adventure!" のマルチ友達招待プロンプト、または "Invite this friend to join the adventure!" の特定の友達招待プロンプト。注意して、カスタム招待プロンプトメッセージが UI の境界を超える長さになると、表示されません。
InviteUser番号特定の友達を招待する Roblox UserId のロブロックス;提供されていない場合、プレイヤーはフレンドリストから選択するように促されます。
InviteMessageId文字列友達が受信する招待通知のタイプにマップするアセット I入力 です。このアセットは、友達が受信する招待通知のタイプにカスタムストリングを保存/ローカライズするために使用されます。詳細は、「<a href=\"#NotificationOptions\">設定通知オプション</a>」を参照してください。
LaunchData文字列友達が招待通知から参加するときにパラメータを設定します Player:GetJoinData() 使用して、インクルーディング データ を含む最大 200 文字。デモの使用例 に参照してください。
ローカルスクリプト - 複数の友達を招待する

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- カスタムプロンプトメッセージで招待オプションを構成する
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Ask your friends to join the adventure!"

通知オプションを設定

デフォルトでは、友達が受信する招待通知には、送信者の DisplayName 、ユーザーユーザーネーム、およびエクスペリエンス名が含まれています。メッセージをカスタマイズするには、クリエイターダッシュボード の Notification アセットを作成し、その

  1. ナビゲート to the クリエイターダッシュボード

  2. バッジと同様、通知ストリングは 特定のエクスペリエンス に結び付けられています。そのエクスペリエンスのサムネイルを見つけて、クリックします。

  3. 左の列で、 エンゲージメント の下で、 通知 をクリックします。

  4. 中央の領域で、 通知ストリングを作成する ボタンをクリックします。

  5. 識別子名 (あなたにしか見えない) とカスタム通知テキストを入力します。注意、expName を入力する必要があります。DisplayName をオプションで入力することもできます。显示名称 のプレースホルダーを通じて、2>playerName2> をオプ

    通知文字列の例:

    • displayName は、あなたが experienceName で冒険に参加することを望んでいます!
    • displayName は experienceName の第六ステージをクリアしました。できますか?
  6. 準備ができたら、 ボタンをクリックして通知文字列を作成します

  7. 通知ページで、通知ボタンをクリックし、⋯ ボタンで通知を選択し、アセット ID をコピー を選択します。

  8. 招待プロンプトの ExperienceInviteOptions オブジェクトに、InviteMessageId プロパティの値としてアセット ID を入力します。

    ローカルスクリプト - 複数の友達を招待する

    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    -- 友達のユーザー ID で招待オプションを構築する
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"

招待を促す

招待状をプレイヤーが受信できるかどうかを最初に確認する必要があります。これはプラットフォームまたはプレイヤーによって機能が異なるため、能力は変更される可能性があります。確認済みの場合、招待状をプレイヤーに表示できます。

  1. Class.SocialService:CanSendGameInviteAsync() を呼び出します。pcall() は、時々失敗する可能性のある非同期ネットワークコールです。
  2. 招待能力が確認された場合、SocialService:PromptGameInvite() を呼び出し、招待オプションオブジェクト をオプションの第 2 引数として呼び出します。

プレイヤーが招待されると、画面上のプロンプトに表示され、招待オプションオブジェクト に定義された特定の友達を招待するようになります。プレイヤーが招待ボタンをクリックすると、送信者の Class.Player

ローカルスクリプト - 複数の友達を招待する

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- プレイヤーが招待を送信できるかどうかをチェックする機能
local function canSendGameInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendGameInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canInvite = canSendGameInvite(player)
if canInvite then
SocialService:PromptGameInvite(player)
end

発売データを含む

さらにエクスペリエンス中のコラボレーションを改善するか、プレイヤーの招待を促進するために、 ランチャーデータ を招待プロンプトに含めることができます。これは、招待された友達をコーディネート場所に移動するなどのシナリオの場合、または参加者の参加体験を個人化するためのパーソナライズされた体験の場合に

  1. 招待状を入手したとき、友達がエクスペリエンスに参加するときに使用する関連するデータを含む Class.ExperienceInviteOptions オブジェクトを含めること。たとえば、送信者の ExperienceInviteOptions

    ローカルスクリプト - 複数の友達を招待する

    local HttpService = game:GetService("HttpService")
    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    local data = {
    senderUserID = player.UserId,
    spawnLocation = {12, 48, 205.5}
    }
    local launchData = HttpService:JSONEncode(data)
    -- 発売日で招待オプションを構築
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.LaunchData = launchData
    -- プレイヤーが招待を送信できるかどうかをチェックする機能
    local function canSendGameInvite(sendingPlayer)
    local success, canSend = pcall(function()
    return SocialService:CanSendGameInviteAsync(sendingPlayer)
    end)
    return success and canSend
    end
    local canInvite = canSendGameInvite(player)
    if canInvite then
    SocialService:PromptGameInvite(player, inviteOptions)
    end
  2. 通知で参加する新規フレンドの場合、Player:GetJoinData() を通じてサーバー側の発売データをチェックします。JSONDecode() にインスタンスの複数のデータを JSON でエンコードする場合、Class.HttpService:JSONDecode()|JSONdecode() を通じてデータをデコードする必要があります。

    スクリプト - 招待ランチデータを使用中

    local HttpService = game:GetService("HttpService")
    local Players = game:GetService("Players")
    local ATTEMPT_LIMIT = 10
    local RETRY_DELAY = 1
    local function onPlayerAdded(player)
    local launchData
    for _ = 1, ATTEMPT_LIMIT do
    task.wait(RETRY_DELAY)
    local joinData = player:GetJoinData()
    if joinData.LaunchData ~= "" then
    launchData = joinData.LaunchData
    break
    end
    end
    if launchData then
    local data = HttpService:JSONDecode(launchData)
    print(data.senderUserID)
    print(data.spawnLocation)
    else
    warn("No launch data received!")
    end
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  3. 発売データが存在する場合、それをデザインシナリオのさまざまな場合に使用できます、例えば:

    • 送信者が完了したチャレンジ障害コースの開始時に、コーディネート位置を通じて受信した友達をスポーンします。
    • 発送者が発売データに基づいて Class.Player.UserId にある場プレースにあるかどうかをチェックし、友達のキャラクターをそのキャラクターの近くにテレポートします。