친구 위치 찾기

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

경험 내에서 친구를 찾는 것은 어려울 수 있습니다. 친구 찾기 장치개발자 모듈은 플레이어가 쉽게 플레이스내의 친구에게 찾을 수 있고 텔레포트할 수 있습니다.

모듈 사용

설치

경험에서 FriendsLocator 모듈을 사용하려면:

  1. 보기 탭에서 도구 상자를 엽니다. 그리고 크리에이터 스토어 탭을 선택합니다.

    Toolbox toggle button in Studio
  2. 모델 정렬을 선택한 다음 모두 보기 버튼을 클릭하여 범주 에 대한 전체 보기를 클릭하십시오.

  3. 찾아 클릭하십시오 개발자 모듈 타일.

  4. 친구 찾기 모듈을 찾아보기 및 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.

  5. In the 탐색기 창에서, 전체 FriendsLocator 모델을 ServerScriptService 에 배포합니다. 경험을 실행할 때, 모듈은 다양한 서비스에 배포되고 시작됩니다.

Studio에서 테스트

Studio에서 모듈을 테스트하려면 FriendsLocator 모듈이 멀티 클라이언트 시뮬레이션에서 실행되어야 하며, 솔로 플레이테스트에는 친구가 없기 때문에 모듈이 테스트되지 않습니다.

  1. In StarterPlayerScripts , create a new LocalScript and rename it ConfigureFriendsLocator .

  2. 새로운 친구 위치 지정기 스크립트에 다음 코드를 붙여넣습니다. 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에서 디버깅을 사용할 수 있습니다.
    })
  3. 테스트 탭에서 클라이언트 및 서버 , 시작 버튼을 클릭하고 세 가지 새로운 Studio 인스턴스가 열립니다. 하나의 시뮬레이션 서버 및 두 개의 시뮬레이션 클라이언트가 각각 열립니다.

  4. 클라이언트 Studio 인스턴스 중 하나에 이동하고 다른 캐릭터로부터 100 스터드 떨어진 곳에서 위치를 변경하면 위치 표시자 아이콘이 나타납니다.

이벤트에 연결하기

친구 찾기 모듈은 사용자가 위치 아이콘과 상호 작용할 때 사용자 지정 동작을 소개할 수 있도록 이벤트를 노출합니다.

  1. Make sure that you've created the ConfigureFriendsLocator script outlined in Test in Studio .

  2. 스크립트에 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)
  3. 멀티 클라이언트 테스트를 수행하고 다른 캐릭터의 위치 아이콘을 클릭하십시오. 캐릭터가 해당 위치로 텔레포트되지 않음을 알아보고 이벤트가 트리거되어 사용자 지정 처리 아이콘 클릭을 허용하도록 합니다.

사용자 지정 로커 인터페이스

기본 스타일이 경험에 적합하지 않으면 기본 아바타 포트레이트 UI를 자신의 UI로 대체할 수 있습니다.

기본 UI를 대체하려면:

  1. StarterGui 컨테이너 내의 새로운 Class.ScreenGui 인스턴스를 생성합니다.

  2. 새로운 Frame 의 자식인 Class.Frame 인스턴스를 생성하고, 친구 찾기 라는 이름의 하위 자식인 ScreenGui 를 추가한 다음 요소를 추가하십시오. 2>Class.ImageLabel|ImageLabels2>, 5>Class.TextLabel|TextLabels5> 등을 디자인하려

  3. 완료되면 DISABLE 부모 ScreenGui 를 사용하여 모듈이 필요할 때까지 사용자 지정 위치 표시 UI를 표시하지 않습니다.

  4. (옵션) 친구의 아바타 포트레이트와 DisplayName 을 사용자 지정 UI의 어딘가에 표시하려면 FriendLocator 프레임 내에 다음 인스턴스를 배치할 수 있습니다.

    • Portrait의 이름의 Class.ImageLabel .
    • DisplayName의 이름에 대한 Class.TextLabel 입니다.

    모듈은 이러한 항목을 검색하고 친구의 아바타 포트레이트 및/또는 이름을 표시합니다.

API 참조

함수

구성

구성(구성: table )

다음 키/값을 통해 기본 구성 옵션을 config 테이블을 통해 덮어씁니다.

설명기본
alwaysOnToptrue 는 모든 것 위에 위치 아이콘을 표시하여 3D 세계 개체에 의해 차단되지 않습니다.
showAllPlayerstrue 는 모든 플레이어의 위치를 표시하지만, 친구만 표시하지 않습니다. 이렇게 하면 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로커 아이콘이 속한 플레이어.
playerCFrame: CFrameCFrame입니다.
로컬 스크립트

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 에만 연결될 수 있습니다.

매개 변수
플레이어: PlayerPlayer
playerCFrame: CFrameCFrame입니다.
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)