플레이어 기반을 늘리는 일반적인 홍보 메서드 외에도 경험 내에서 초대 프롬프트를 직접 구현하여 플레이어가 친구를 초대하고 공동 경험 게임 플레이증가시킬 수 있습니다.
초대 프롬프트 시스템에는 팔로잉있습니다.
- 동적 초대자 — 선택 목록에서 여러 명의 친구를 초대하거나 특정 친구를 초대하십시오.
- 데이터 시작 데이터 포함 — 초대한 친구가 참여할 때 읽을 수 있는 선택적인 시작 데이터를 포함하십시오. 예시 사용 사례는 초대한 친구를 좌표 위치로 라우트하거나 참여 경험을 개인화하는 것입니다.
- 사용자 지정 텍스트 — 플레이어를 위한 초대 메시지 및 초대 메시지의 알림을 사용자 정의합니다. 예를 들어, 플레이어를 위한 초대 메시지는 "친구를 초대하세요"를 읽을 수 있으며 초대된 친구(들)의 알림 메시지는 "displayName이(가) 모��
또한 친구 초대 보상 시스템 을 사용하여 초대자와 참가자를 추적하고 보상할 수 있습니다.
초대 옵션 설정
기본적으로 플레이어에게 초대 프롬프트가 있는 경우 초대 버튼이 있는 친구의 메뉴를 표시합니다. 프롬프트 메시지를 사용자 정의하려면 특정 친구를 대상으로 하거나 초대에 대한 발사 데이터를 포함하도록 초대 개체를 설정해야 합니다. Class.ExperienceInviteOptions
속성 | 유형 | 설명 |
---|---|---|
PromptMessage | 문자열 | 플레이어를 위한 초대 메시지에 표시되는 사용자 지정 텍스트, 예를 들어 "친구에게 모험에 참여하라고 요청하세요!" 멀티 친구 초대 메시지 또는 "친구를 초대하세요!" 특정 친구 초대 메시지 요청에 대한 메시지입니다. 만약 사용자 지정 초대 메시지 메시지가 UI 경 |
InviteUser | 숫자 | 특정 친구를 초대하려면 Roblox UserId 의 친구; 제공되지 않으면 플레이어가 친구 목록에서 선택하도록 요청됩니다. |
InviteMessageId | 문자열 | 알림 유형의 자산에 대한 자산 ID. 이 자산은 친구가 받는 초대 알림에 대한 사용자 지정 문자열을 저장/로컬화하는 데 사용됩니다. 자세한 내용은 알림 옵션 설정에 참조하십시오. |
LaunchData | 문자열 | 친구가 초대 알림에서 참가할 때 매개 변수를 설정합니다. 최대 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 자산을 생성하고 자산 ID를 매개 변수로
크리에이터 대시보드로 moves.
배지와 마찬가지로 알림 문자열은 특정 경험에 연결됩니다. 경험의 썸네일을 찾아 클릭하십시오.
In the left column, under 참여 , click 알림 .
센터 영역에서 알림 문자열 생성 버튼 을 클릭하십시오.
식별자 이름(친구에게만 표시) 및 사용자 지정 알림 텍스트를 입력합니다. experienceName 을 필수 구성 요소로 포함하여 경험의 이름을 식별하고, 선택적으로 발신자의 DisplayName 을 통해 발신자의 이름을 표시할 수 있
예시 알림 문자열:
- displayName은 experienceName에서 모험을 함께하기를 원합니다!
- displayName님이 방금 experienceName의 여섯 번째 단계를 클리어했습니다. 할 수 있나요?
준비되면 알림 문자열 생성 버튼 을 클릭하십시오.
알림 페이지에서 알림 버튼을 클릭하고 알림을 선택하고 자산 ID 복사를 선택합니다.
초대 프롬프트에 대한 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"
초대 입력
초대를 표시하려면 플랫폼이나 플레이어에 따라 능력이 다를 수 있으므로 플레이어가 초대를 보낼 수 있는지 여부를 먼저 결정해야 합니다. 확인되면 초대 프롬프트를 플레이어에게 표시할 수 있습니다.
- 앞에서 언급한 대로 이 메시지는 잠시 중단될 수 있는 비동기 네트워크 호출입니다. SocialService:CanSendGameInviteAsync() 를 호출하면 pcall() 안에 있는 이 메시지가 자동으로 다시 전송됩니다.
- 초대 기능이 확인된 경우 SocialService:PromptGameInvite() 를 호출하고 선택적인 초대 옵션 개체 를 두 번째 인수로 전달합니다.
플레이어는 초대 옵션 개체의 특정 친구를 초대하거나 Class.Player.DisplayName|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
시작 데이터 포함
경험 내 협업을 더 향상하거나 플레이어 초대를 촉진하기 위해 출시 데이터 를 초대 프롬프트에 포함할 수 있습니다. 이 프롬프트는 경로 초대 친구를 위치 지정 위치로 라우트하거나 참가자를 개인화하는 등의 시나리오에 유용합니다.
친구가 경험에 참여할 때 사용할 관련 데이터가 있는 초대 개체를 포함하십시오. 예를 들어, 발신자의 ExperienceInviteOptions 는 친구가 경험에
로컬 스크립트 - 여러 명의 친구를 초대local HttpService = game:GetService("HttpService")local SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal 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 canSendendlocal canInvite = canSendGameInvite(player)if canInvite thenSocialService:PromptGameInvite(player, inviteOptions)end알림을 통해 가입하는 친구에게는 서버 사이트의 Player:GetJoinData()를 확인하십시오. 초대 프롬프트에 대해 여러 개의 데이터를 JSON으로 인코딩하는 경우 JSONDecode()를 사용하여 해독하십시오.
스크립트 - 초대 발사 데이터 사용local HttpService = game:GetService("HttpService")local Players = game:GetService("Players")local ATTEMPT_LIMIT = 10local RETRY_DELAY = 1local function onPlayerAdded(player)local launchDatafor _ = 1, ATTEMPT_LIMIT dotask.wait(RETRY_DELAY)local joinData = player:GetJoinData()if joinData.LaunchData ~= "" thenlaunchData = joinData.LaunchDatabreakendendif launchData thenlocal data = HttpService:JSONDecode(launchData)print(data.senderUserID)print(data.spawnLocation)elsewarn("No launch data received!")endendPlayers.PlayerAdded:Connect(onPlayerAdded)발사 데이터가 있으면 다양한 디자인 시나리오에 대해 사용할 수 있습니다. 여기에는 다음이 포함됩니다.
- 발신자가 방금 완료한 도전적인 장애물 코스의 시작에서 발생하는 친구를 생성하십시오, 기반으로 발사 데이터를 통해 전달된 좌표 위치.
- 발신자가 발사 데이터에 있는 Class.Player.UserId 기반으로 플레이스있는지 확인하고 친구의 캐릭터 근처에 친구의 캐릭터를 텔레포트하십시오.