Lokalizator Przyjaciół

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Może być trudno znaleźć przyjaciół w doświadczeniu. The FriendsLocatormoduł rozwoju pozwala graczom łatwo znaleźć i teleportować się do ich przyjaciół w miejsce.

Użyj modułu

Instalacja

Aby użyć modułu FriendsLocator w doświadczeniu:

  1. Z zakładki Zobacz, otwórz Skrzynię narzędzi i wybierz Sklep z twórcami.

    Toolbox toggle button in Studio
  2. Upewnij się, że Modele sortowanie jest zaznaczone, a następnie kliknij przycisk Zobacz wszystko dla Kategorie.

  3. Lokalizuj i klikaj na płytę Moduły Rozwoju .

  4. Lokalizuj moduł Lokalizator Przyjaciół i kliknij go lub przeciągnij go do 3D-wizualizacji.

  5. W oknie Explorer przenieś cały model FriendsLocator do ServerScriptService . Po uruchomieniu doświadczenia moduł zostanie rozdzielony na różne usługi i zacznie działać.

Testowanie w Studio

Aby przetestować moduł w Studio, moduł FriendsLocator musi zostać uruchomiony w wieloklientycznej symulacji, ponieważ żadnych przyjaciół nie będzie obecnych w grze w solo.

  1. W StarterPlayerScripts , utwórz nowy LocalScript i zmień jego nazwę ConfigureFriendsLocator .

  2. Wklej następujący kod do nowego KonfigurujLokalizatoryPrzyjaciół skryptu. Ustawienie showAllPlayers w funkcji konfiguruj gwarantuje, że lokalizatory są wyświetlane dla wszystkich użytkowników podczas testowania w Studio, ale nie w miejsceopublikowanym.

    Lokalny Skrypt - KonfigurujLokalizatorPrzyjaciół

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- Umożliwia debugowanie w Studio
    })
  3. Z Testuj zakładki, wybierz następującą kombinację dla Klientów i serwerów, a następnie kliknij przycisk Zacznij. Trzy nowe instancje Studio zostaną otwarte; jeden symulowany serwer i dwa symulowane klienty.

  4. Wejdź do jednej z instancji kliienta Studio, przesuń odległość 100 studs od drugiego postaci i powinieneś zobaczyć ikonę lokalizatora pojawiającą się nad jego głową.

Łączenie z wydarzeniami

Moduł FriendsLocator wyświetla wydarzenia, abyś mógł wprowadzić niestandardowe zachowania, gdy użytkownicy wchodzą w interakcję z ikonalokalizatora.

  1. Upewnij się, że stworzyłeś skrypt ConfigureFriendsLocator opisany w Testowanie w Studio.

  2. Dodaj linie 8 i 11-13 do skryptu:

    Lokalny Skrypt - KonfigurujLokalizatorPrzyjaciół

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- Umożliwia debugowanie w Studio
    teleportToFriend = false, -- Zapobiecz teleportacji przy kliknięciu/dotknięciu ikony
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("You clicked on locator icon for", player.DisplayName)
    end)
  3. Przeprowadź test sieciowy i kliknij na ikonalokalizatora innego postaci. Zauważ, że twoja postać nie teleportuje się do tej lokalizacji, a wydarzenie wzwala, aby umożliwić niestandardowe przetwarzanie kliknięć ikony.

Interfejs lokalizatora użytkownika

Jeśli domyślny styl nie odpowiada twojemu doświadczeniu, możesz zastąpić domyślną interfejs użytkownika awatarem z własnej interfejsu użytkownika.

Aby zastąpić domyślną interfejs użytkownika:

  1. Utwórz nową instancję ScreenGui w środku kontenera StarterGui .

  2. Utwórz instancję Frame jako dziecko nowego Class.ScreenGui , a następnie dodaj elementy takie jak ScreenGui , 1> Class.TextLabel|TextTags1> do zaprojektowania swojej niestandardowej interfejsu użytkownika.

  3. Kiedy skończono, wyłącz moduł, aby moduł nie pokazywał UI lokalizatora dostosowanego, dopóki nie będzie to potrzebne.

  4. (Opcjonalne) Jeśli chcesz portretu awatara znajomyi DisplayName do pokazania gdzieś w niestandardowej interfejsie użytkownika, możesz umieścić następujące instancje w ramach FriendLocator .

    • Class.ImageLabel z imieniem Portret .
    • A TextLabel z imienia DisplayName .

    Moduł szuka tych przedmiotów i wyświetla portret awatara znajomyi/lub nazwę wyświetlaną w odpowiedniej kolejności.

Referencja API

Funkcje

konfigurować

konfigurować(config: table )

Przy użyciu następujących kluczy/wartości w tabeli config można wyłączyć domyślne opcje konfiguracji.

KluczOpisDomyślny
alwaysOnTopJeśli true, pokazuje ikony lokalizatora na górze wszystkiego, zapobiegając blokowaniu przez obiekty 3D.prawdziwy
showAllPlayersJeśli true , pokazuje lokalizacje dla wszystkich graczy, nie tylko dla przyjaciół; może to pomóc weryfikować funkcjonalność modułu w Studio.fałszywy
teleportToFriendTeleportuje postać gracza do lokalizacji znajomy, gdy jego ikonka lokalizatora jest kliknięta lub dotyknięta.prawdziwy
thresholdDistanceOdległość kamery, w której pojawiają się ikony lokalizatorów; przyjaciele bliżej tej odległości nie będą wyświetlać ikonek.100
maxLocatorsMaksymalna liczba ikon lokalizatora pokazanych w dowolnym momencie.10
Lokalny Skrypt - KonfigurujLokalizatorPrzyjaciół

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
FriendsLocator.configure({
alwaysOnTop = true,
showAllPlayers = false,
teleportToFriend = true,
thresholdDistance = 100,
maxLocators = 10
})

Wydarzenia

kliknięty

Występuje, gdy ikona lokalizatora jest kliknięta/aktywowana przez lokalnego gracza. Ten wydarzenie może być połączony tylko w LocalScript .

Parametry
gracz: PlayerGracz, do którego należy ikona lokalizatora.
playerCFrame: CFrameCFrame gracza Humanoid.RootPart którego ikona lokalizatora należy.
Lokalny Skrypt

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)
-- Żądaj przepustów wokół lokalizacji docelowej
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)

Zmiana widoczności

Występuje, gdy na lokalnym ekranie gracza jest pokazany/ukryty znak lokalizacji. Ten ewent może być powiązany tylko w LocalScript .

Parametry
gracz: PlayerPlayer, do którego należy ikona lokalizatora.
playerCFrame: CFrameCFrame gracza Humanoid.RootPart którego ikona lokalizatora należy.
isVisible: booleanCzy ikonka lokalizatora jest obecnie widoczna na ekranie lokalnego gracza. Uwaga, że będzie to nadal true jeśli alwaysOnTop jest nadal false i renderuje lokalizator za obiektem w świecie 3D.
Lokalny Skrypt

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)