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źć znajomych w doświadczeniu.Moduł rozwojowy FriendsLocator, pozwala graczom łatwo znaleźć i przenieść się do swoich przyjaciół w środku miejsce.

Użycie modułu

Instalacja

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

  1. Z zakładki Widok, otwórz Pudełko z narzędziami i wybierz zakładkę Sklep z twórcami .

    Toolbox toggle button in Studio
  2. Upewnij się, że wybrano sortowanie modele , a następnie kliknij przycisk Zobacz wszystko dla kategorii .

  3. Zlokalizuj i kliknij pasek modułów rozwojowych .

  4. Zlokalizuj moduł Lokalizator przyjaciół i kliknij go, lub przeciągnij i upuść do widoku 3D.

  5. W oknie Eksploratora przenieś cały model FriendLocator do ServerScriptService .Po uruchomieniu doświadczenia moduł rozproszy się na różne usługi i rozpocznie działanie.

Testuj w Studio

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

  1. W StarterPlayerScripts , utwórz nowy LocalScript i zmień nazwę na Konfiguruj lokalizator przyjaciół .

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

    Lokalny skrypt - KonfigurujFriendsLocator

    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 zakładki Test w pasku narzędzi wybierz następną kombinację dla klientów i serwerów , a następnie kliknij przycisk Rozpocznij .Otworzą się trzy nowe instancje Studio; jeden symulowany serwer i dwa symulowane klienty.

  4. Wejdź do jednej z instancji klienta Studio, przemieść odległość 100 szpilkami od innej postaci i powinieneś zobaczyć ikonę lokalizatora pojawiającą się nad jego głową.

Połącz z wydarzeniami

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

  1. Upewnij się, że stworzyłeś skrypt KonfigurujFriendsLocator opisany w testowaniu w Studio.

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

    Lokalny skrypt - KonfigurujFriendsLocator

    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, -- Zapobiegnij 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 wielokrotnego klienta i kliknij ikonalokalizatora innej postaci.Zauważ, że twoja postać nie teleportuje się do tej lokalizacji, a wydarzenie uruchamia się, aby umożliwić niestandardowe obsługiwanie klik ikon.

Niestandardowy interfejs lokalizatora

Jeśli domyślny styl nie pasuje do twojego doświadczenia, możesz zastąpić domyślną interfejs użytkownika portretu awatara własną interfejs użytkownika.

Aby zastąpić domyślną interfejs:

  1. Stwórz nową instancję ScreenGui wewnątrz kontenera StarterGui .

  2. Stwórz instancję Frame o nazwie FriendLocator jako dziecko nowego ScreenGui, a następnie dodaj elementy takie jak ImageLabels lub TextLabels do zaprojektowania własnej niestandardowej interfejsu użytkownika.

  3. Po zakończeniu wyłącz rodzica ScreenGui, aby moduł nie pokazywał interfejsu lokalizatora niestandardowego, dopóki nie będzie to potrzebne.

  4. (Opcjonalnie) Jeśli chcesz, aby portret awatara znajomypojawił się gdzieś w niestandardowym interfejsie użytkownika, możesz umieścić poniższe instancje w ramce FriendLocator .

    Moduł będzie szukał tych przedmiotów i wyświetlał portret awatara znajomyoraz/lub nazwę wyświetlaną odpowiednio.

Referencja API

Funkcje

skonfigurować

konfigurować(config: table )

Nadpisanie domyślnych opcji konfiguracyjnych za pomocą następujących kluczy/wartości w tabeli config.

KluczOpisDomyślny
alwaysOnTopJeśli true, pokazuje ikonki lokalizatora na górze wszystkiego, uniemożliwiając blokowanie ich przez obiekty świata 3D.prawda
showAllPlayersJeśli true, pokazuje lokalizacje dla wszystkich graczy, nie tylko przyjaciół; może to pomóc weryfikować funkcjonalność modułu w Studio.fałsz
teleportToFriendTeleportuje postać gracza do lokalizacji znajomy, gdy jego ikonka lokalizatora zostanie kliknięta lub dotknięta.prawda
thresholdDistancePróg odległości kamery, przy którym pojawiają się ikony lokalizatora; przyjaciele bliżsi niż ta odległość nie będą wyświetlać ikon.100
maxLocatorsMaksymalna liczba ikon lokalizatora wyświetlanych jednocześnie.10
Lokalny skrypt - KonfigurujFriendsLocator

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ęto

Wystrzeliwuje się, gdy ikona lokalizatora jest kliknięta/aktywowana przez lokalnego gracza. To wydarzenie może być połączone tylko w LocalScript.

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

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)
-- Żądanie strumieniowania 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

Wystrzeliwuje, gdy ikona lokalizatora jest wyświetlana/ukrywana na ekranie lokalnego odtwarzacza. To wydarzenie może być połączone tylko w LocalScript.

Parametry
gracz: PlayerPlayer obiekt, do którego należy ikonka lokalizatora.
playerCFrame: CFrameCFrame z gracza Humanoid.RootPart, do którego należy ikonka lokalizatora.
isVisible: booleanCzy ikona lokalizatora jest obecnie widoczna na ekranie lokalnego gracz.Zauważ, że nadal będzie to true, jeśli alwaysOnTop jest false i lokalizator renderuje się 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)