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:
Z zakładki Zobacz, otwórz Skrzynię narzędzi i wybierz Sklep z twórcami.
Upewnij się, że Modele sortowanie jest zaznaczone, a następnie kliknij przycisk Zobacz wszystko dla Kategorie.
Lokalizuj i klikaj na płytę Moduły Rozwoju .
Lokalizuj moduł Lokalizator Przyjaciół i kliknij go lub przeciągnij go do 3D-wizualizacji.
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.
W StarterPlayerScripts , utwórz nowy LocalScript i zmień jego nazwę ConfigureFriendsLocator .
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})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.
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.
Upewnij się, że stworzyłeś skrypt ConfigureFriendsLocator opisany w Testowanie w Studio.
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 StudioteleportToFriend = 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)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:
Utwórz nową instancję ScreenGui w środku kontenera StarterGui .
Kiedy skończono, wyłącz moduł, aby moduł nie pokazywał UI lokalizatora dostosowanego, dopóki nie będzie to potrzebne.
(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ć
Przy użyciu następujących kluczy/wartości w tabeli config można wyłączyć domyślne opcje konfiguracji.
Klucz | Opis | Domyślny |
---|---|---|
alwaysOnTop | Jeśli true, pokazuje ikony lokalizatora na górze wszystkiego, zapobiegając blokowaniu przez obiekty 3D. | prawdziwy |
showAllPlayers | Jeśli true , pokazuje lokalizacje dla wszystkich graczy, nie tylko dla przyjaciół; może to pomóc weryfikować funkcjonalność modułu w Studio. | fałszywy |
teleportToFriend | Teleportuje postać gracza do lokalizacji znajomy, gdy jego ikonka lokalizatora jest kliknięta lub dotyknięta. | prawdziwy |
thresholdDistance | Odległość kamery, w której pojawiają się ikony lokalizatorów; przyjaciele bliżej tej odległości nie będą wyświetlać ikonek. | 100 |
maxLocators | Maksymalna 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: Player | Gracz, do którego należy ikona lokalizatora. |
playerCFrame: CFrame | CFrame 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: Player | Player, do którego należy ikona lokalizatora. |
playerCFrame: CFrame | CFrame gracza Humanoid.RootPart którego ikona lokalizatora należy. |
isVisible: boolean | Czy 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)