경험 내에서 친구를 찾는 것은 도전적일 수 있습니다.The FriendsLocator 개발자 모듈 lets players easily find and teleport to their friends inside a 플레이스.
모듈 사용
설치
경험에서 FriendsLocator 모듈을 사용하려면:
보기 탭에서 도구 상자 를 열고 크리에이터 스토어 탭을 선택합니다.
모델 정렬이 선택되었는지 확인한 다음 모두 보기 버튼을 클릭하여 카테고리를 확인하십시오.
찾아서 클릭하십시오 개발자 모듈 타일.
친구 찾기 모듈을 찾아서 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.
탐색기 창에서 친구 찾기 모델 전체를 서버 스크립트 서비스로 이동합니다.경험을 실행하면 모듈이 다양한 서비스에 배포되고 실행을 시작합니다.
Studio에서 테스트
Studio에서 모듈을 테스트하려면 FriendsLocator 모듈이 멀티 클라이언트 시뮬레이션에서 실행되어야 하며, 솔로 플레이테스트에 친구가 없으므로 친구를 찾을 수 없습니다.
In 스타터 플레이어 스크립트 , 새로운 LocalScript 를 만들고 이름을 친구 찾기 구성자 로 바꿉니다.
새로운 친구 찾기자 구성 스크립트에 다음 코드를 붙여넣으십시오.스튜디오에서 테스트하는 동안 모든 사용자에게 식별자가 표시되지만, 게시된 장소에서는 표시되지 않는 configure 함수 내의 설정은 스튜디오에서 테스트하는 동안 모든 사용자에게 식별자가 표시되지만, 게시된 플레이스표시되지 않는
로컬스크립트 - 친구 찾기자 구성local RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Studio에서 디버깅 허용})도구 모음의 테스트 탭에서 클라이언트와 서버 에 대한 다음 조합을 선택한 다음 시작 버튼을 클릭하십시오.Studio의 새로운 세 인스턴스가 열립니다; 하나의 시뮬레이션된 서버와 두 개의 시뮬레이션된 클라이언트.
클라이언트 Studio 인스턴스 중 하나로 이동하고, 다른 캐릭터에서 100스터드 떨어진 거리를 이동하고, 머리 위에 찾기 아이콘 이 나타나는 것을 볼 수 있어야 합니다.
이벤트에 연결
친구 찾기자 모듈은 사용자가 찾기 아이콘과 상호작용할 때 사용자 지정 행동을 소개할 수 있도록 이벤트 를 노출합니다.
Make sure that you've created the 친구찾기 구성자 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를 대체하려면:
스타터GUI 컨테이너 내에서 새로운 ScreenGui 인스턴스를 생성합니다.Create a new instance inside the StarterGui container.
새로운 의 자식으로 FriendLocator라는 인스턴스를 생성하고, , 와 같은 요소를 추가하여 사용자 지정 UI를 디자인합니다.
완료되면 비활성화 부모 ScreenGui 를 비활성화하여 모듈이 필요할 때까지 사용자 지정 로케이터 UI를 표시하지 않습니다.
(옵션) 친구의 아바타 초상을 보여주고 싶고 사용자 지정 UI의 어딘가에 DisplayName 다음 인스턴스를 FriendLocator 프레임 내에 배치할 수 있습니다.
- 이름 ImageLabel 의 초상화 .
- 이름 TextLabel 의 DisplayName .
모듈은 이러한 항목을 찾아 친구의 아바타 포트레이트 및/또는 디스플레이 이름을 표시합니다.
API 참조
함수
구성
구성(config: table)
기본 구성 옵션을 다음 키/값을 통해 재정의합니다 config 테이블에서.
키 | 설명 | 기본 |
---|---|---|
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 | 로캘러 아이콘이 속한 플레이어. |
플레이어CFrame: CFrame | CFrame 플레이어의 Humanoid.RootPart 로커 아이콘에 속하는 플레이어의. |
로컬 스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
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 로케이터 아이콘에 속하는 개체. |
플레이어CFrame: CFrame | CFrame 플레이어의 Humanoid.RootPart 로커 아이콘에 속하는 플레이어의. |
가시성: boolean | 로캐이저 아이콘이 현재 로컬 플레이어의 화면에 표시되는지 여부.참고로 이것은 여전히 true일 것입니다, 만약 alwaysOnTop가 false이고 로캘라이저가 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)