경험 내에서 친구를 찾는 것은 어려울 수 있습니다. 친구 찾기 장치개발자 모듈은 플레이어가 쉽게 플레이스내의 친구에게 찾을 수 있고 텔레포트할 수 있습니다.
모듈 사용
설치
경험에서 FriendsLocator 모듈을 사용하려면:
모델 정렬을 선택한 다음 모두 보기 버튼을 클릭하여 범주 에 대한 전체 보기를 클릭하십시오.
찾아 클릭하십시오 개발자 모듈 타일.
친구 찾기 모듈을 찾아보기 및 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.
In the 탐색기 창에서, 전체 FriendsLocator 모델을 ServerScriptService 에 배포합니다. 경험을 실행할 때, 모듈은 다양한 서비스에 배포되고 시작됩니다.
Studio에서 테스트
Studio에서 모듈을 테스트하려면 FriendsLocator 모듈이 멀티 클라이언트 시뮬레이션에서 실행되어야 하며, 솔로 플레이테스트에는 친구가 없기 때문에 모듈이 테스트되지 않습니다.
In StarterPlayerScripts , create a new LocalScript and rename it ConfigureFriendsLocator .
새로운 친구 위치 지정기 스크립트에 다음 코드를 붙여넣습니다. showAllPlayersshowAllPlayers 설정 내의 1>설정1> 은 스튜디오에서 테스트하는 모든 사용자를 위해 로커를 표시하지만 게시된 플레이스적용되지
로컬 스크립트 - 친구 위치 설정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 ConfigureFriendsLocator script outlined in Test 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를 대체하려면:
StarterGui 컨테이너 내의 새로운 Class.ScreenGui 인스턴스를 생성합니다.
완료되면 DISABLE 부모 ScreenGui 를 사용하여 모듈이 필요할 때까지 사용자 지정 위치 표시 UI를 표시하지 않습니다.
(옵션) 친구의 아바타 포트레이트와 DisplayName 을 사용자 지정 UI의 어딘가에 표시하려면 FriendLocator 프레임 내에 다음 인스턴스를 배치할 수 있습니다.
- Portrait의 이름의 Class.ImageLabel .
- DisplayName의 이름에 대한 Class.TextLabel 입니다.
모듈은 이러한 항목을 검색하고 친구의 아바타 포트레이트 및/또는 이름을 표시합니다.
API 참조
함수
구성
다음 키/값을 통해 기본 구성 옵션을 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 에만 연결될 수 있습니다.
로컬 스크립트
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입니다. |
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)