플레이어 초대 메시지

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

플레이어 기반을 늘리기 위한 일반적인 홍보 방법 외에도, 경험 내에서 초대 프롬프트 를 직접 구현하여 플레이어가 친구를 초대하고 공동 경험 게임 플레이증가시키도록 할 수 있습니다.

초대 프롬프트 시스템에는 팔로잉포함됩니다:

  • 동적 초대자 — 플레이어에게 선택 목록에서 여러 친구를 초대하거나 특정 친구를 초대하도록 요청합니다.
  • 출시 데이터 — 초대된 친구가 참여할 때 출시 데이터를 읽을 수 있는 선택적 데이터를 포함합니다. — Player:GetJoinData()예시 사용 사례에는 초대받은 친구를 좌표 위치로 라우팅하거나 초대자에게 참여 경험을 개인화하는 것이 포함됩니다.
  • 사용자 지정 가능한 텍스트초대 메시지알림 메시지를 사용자 지정합니다.예를 들어, 플레이어에게 초대 메시지가 "친구들에게 모험에 참여하도록 요청하세요!"라고 읽을 수 있고, 초대된 친구(들)에 대한 알림 메시지는 "displayName"이 experienceName에서 그들의 모험에 참여하도록 요청하는 것을 읽을 수 있습니다.

또한 친구 초대 보상 시스템을 사용하여 초대자와 초대자를 추적하고 보상할 수 있습니다.

초대 옵션 설정

기본적으로 플레이어에 대한 초대 프롬프트는 초대 버튼이 있는 친구의 메뉴를 표시합니다.프롬프트 메시지를 사용자 지정하거나, 특정 친구를 타겟으로 하거나, 초대에 런처 데이터를 포함하려면 원하는 속성을 가진 ExperienceInviteOptions 개체를 설정해야 합니다.

속성유형설명
PromptMessage문자열예를 들어, 다중 친구 초대 프롬프트에서는 "친구들에게 모험에 참여하도록 요청하세요!"라는 사용자 지정 텍스트, 또는 특정 친구 초대 프롬프트에서는 "이 친구를 모험에 초대하세요!"라는 사용자 지정 텍스트를 표시합니다.사용자 지정 초대 메시지가 UI의 경계를 넘어서면 표시되지 않는다는 점에 유의하십시오. If your custom invite prompt message is long enough to overflow the bounds of the UI, it will not be shown.
InviteUser번호특정 친구를 초대하기 위한 Roblox; 제공되지 않으면 플레이어에게 친구 목록에서 선택하도록 요청됩니다.
InviteMessageId문자열 알림 자산 입력매핑하는 자산 ID.이 자산은 친구가 받는 초대 알림의 사용자 지정 문자열을 저장하거나 지역화하는 데 사용됩니다.자세한 내용은 설정 알림 옵션을 참조하십시오.
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 , 사용자 이름 및 경험 이름이 포함됩니다.메시지를 사용자 지정하려면 크리에이터 대시보드 에서 알림 자산을 생성하고 자산 ID를 ExperienceInviteOptions로 포함할 수 있습니다.

  1. 탐색하여 크리에이터 대시보드로 이동합니다.

  2. 배지와 마찬가지로 알림 문자열은 특정 경험에 연결됩니다. 해당 경험의 썸네일을 찾아 클릭하십시오.

  3. 왼쪽 열에서 참여 아래에서 알림 을 클릭하십시오.

  4. 중앙 지역에서 알림 문자열 생성 버튼을 클릭하십시오.

  5. 식별자 이름(오직 본인만 볼 수 있음)과 사용자 지정 알림 텍스트를 채우십시오.초대된 친구에 대한 경험 이름을 식별하기 위해 experienceName 를 자리 표시자로 포함해야 하고, DisplayName 자리 표시자를 통해 발신자의 displayName 도 옵션으로 포함할 수 있습니다.

    예시 알림 문자열:

    • displayName가 experienceName에서 그들의 모험에 참여하기를 원합니다!
    • displayName가 experienceName의 여섯 번째 단계를 깨끗이 했습니다. 할 수 있나요?
  6. 준비가 되면 알림 문자열 생성 버튼을 클릭하십시오.

  7. 알림 페이지에서 알림 테이블에서 버튼을 행동 열에서 클릭하고 자산 ID 복사 를 선택합니다.

  8. 초대 메시지의 개체에서 ExperienceInviteOptions 자산 ID를 InviteMessageId 속성의 값으로 붙여넣습니다.

    로컬스크립트 - 여러 친구 초대

    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. 호출 SocialService:CanSendGameInviteAsync() , 비동기 네트워크 호출이기 때문에 때때로 실패할 수 있는 캡슐화된 pcall() 에 포장되었습니다.
  2. 초대 기능이 확인되면 두 번째 인수로 선택적 초대 옵션 개체를 사용하여 SocialService:PromptGameInvite()하십시오.

한 번 요청되면 플레이어는 화면에 표시되는 여러 친구를 초대하거나 초대 옵션 개체에 정의된 특정 친구를 초대하는 메시지를 볼 수 있습니다.플레이어가 한 명 이상의 친구에 대해 초대 버튼을 클릭하면 그 친구들은 발신자의 DisplayName, 사용자 이름 및 경험 이름이 포함된 알림을 받습니다.알림은 알림 옵션 설정에 설명된 대로 추가로 사용자 지정될 수 있습니다.

로컬스크립트 - 여러 친구 초대

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. 초대 요청을 할 때 , 친구가 경험에 참여할 때 사용될 관련 데이터가 있는 ExperienceInviteOptions 개체를 포함하고, 예를 들어 발신자의 Player.UserId , 참여 시 수여할 배지의 ID 또는 친구를 스폰할 위치 좌표를 포함합니다.여러 조각의 데이터를 컴파일해야 하는 경우 JSONEncode()를 사용하여 데이터를 인코딩합니다.

    로컬스크립트 - 여러 친구 초대

    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()를 통해 확인하십시오.초대 프롬프트에 여러 조각의 데이터를 JSON으로 인코딩하는 경우 JSONDecode()로 디코딩하는 것을 기억하십시오.

    스크립트 - 초대 런칭 데이터 사용 Script - Using Invite Launch Data

    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. 런칭 데이터가 있으면 다음을 포함한 다양한 디자인 시나리오에 사용할 수 있습니다.

    • 발신자가 방금 완료한 도전적인 장애물 코스의 시작에서 수신자가 들어오는 친구를 생성하여 발사 데이터를 통해 전달된 좌표 위치를 기반으로 합니다.
    • 발신자 가 출시 데이터에서 그들의 에 있는지 확인하고, 친구의 캐릭터를 친구의 캐릭터 플레이스순간이동합니다.