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ć wyzwaniem zlokalizowanie przyjaciół w doświadczeniu. Moduł Lokalizator Przyjaciół dewelopera umożliwia graczom łatwe znalezienie i teleportowanie się do swoich przyjaciół w miejscu.

Użycie modułu

Instalacja

Aby użyć modułu Lokalizator Przyjaciół w doświadczeniu:

  1. Z menu Okno w Studio lub na pasku narzędzi tablicy Strona Główna, otwórz Skrzynkę Narzędziową i wybierz zakładkę Sklep Twórcy.

  2. Upewnij się, że wybrano sortowanie Modele, a następnie kliknij przycisk Zobacz Wszystko dla Kategorii.

  3. Znajdź i kliknij kafelek Pakiety.

  4. Znajdź moduł Lokalizator Przyjaciół i kliknij go, lub przeciągnij go do widoku 3D.

  5. W oknie Eksplorator przenieś cały model Lokalizator Przyjaciół do ReplicatedStorage. Po uruchomieniu doświadczenia moduł zacznie działać.

Testowanie w Studio

Aby przetestować moduł w Studio, moduł Lokalizator Przyjaciół musi być uruchomiony w symulacji wieloklienckiej, ponieważ w solowym teście nie będzie obecnych przyjaciół.

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

  2. Wklej poniższy kod do nowego skryptu ConfigureFriendsLocator. Ustawienie showAllPlayers w funkcji konfiguracji zapewnia, że lokalizatory są wyświetlane dla wszystkich użytkowników podczas testowania w Studio, ale nie w opublikowanym miejscu.

    LocalScript - ConfigureFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- Umożliwia debugowanie w Studio
    })
  3. Z mezzaniny Studio, rozpocznij symulację wielokliencką z 2 klientami. Otworzą się trzy nowe instancje Studio; jedna symulowana serwer i dwa symulowane klienci.

    Opcja Serwer & Klienci w rozwijanej liście trybów testowania mezzaniny Studio.
  4. Wejdź do jednej z instancji klienta Studio, przesuń się na 100 studów od innej postaci, a powinieneś zobaczyć, że ikona lokalizatora pojawi się nad jej głową.

Podłączanie do zdarzeń

Moduł Lokalizator Przyjaciół udostępnia zdarzenia, dzięki którym możesz wprowadzać niestandardowe zachowania, gdy użytkownicy interagują z ikoną lokalizatora.

  1. Upewnij się, że utworzyłeś skrypt ConfigureFriendsLocator opisany w testowaniu w Studio.

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

    LocalScript - ConfigureFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- Umożliwia debugowanie w Studio
    teleportToFriend = false, -- Zapobiega teleportacji po kliknięciu/tapnięciu ikony
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("Kliknąłeś ikonę lokalizatora dla", player.DisplayName)
    end)
  3. Przeprowadź test wielokliencki i kliknij ikonę lokalizatora innej postaci. Zauważ, że twoja postać nie teleportuje się do tej lokalizacji, a zdarzenie uruchamia się, umożliwiając niestandardowe przetwarzanie kliknięć ikon.

Niestandardowy interfejs lokalizatora

Jeśli domyślny styl nie pasuje do twojego doświadczenia, możesz zastąpić domyślny interfejs portretu awatara swoim własnym interfejsem.

Aby zastąpić domyślny interfejs:

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

  2. Utwórz instancję Frame o nazwie FriendLocator jako dziecko nowego ScreenGui, a następnie dodaj elementy, takie jak ImageLabels, TextLabels, aby zaprojektować niestandardowy interfejs.

  3. Po zakończeniu wyłącz nadrzędny ScreenGui, aby moduł nie pokazywał niestandardowego interfejsu lokalizatora do czasu, gdy będzie to potrzebne.

  4. (Opcjonalnie) Jeśli chcesz, aby portret awatara przyjaciela oraz DisplayName wyświetlały się gdzieś w niestandardowym interfejsie, możesz umieścić następujące instancje wewnątrz ramki FriendLocator.

    Moduł będzie szukał tych elementów i odpowiednio wyświetli portret awatara przyjaciela i/lub nazwę wyświetlaną.

Odniesienie API

Funkcje

configure

configure(config: table)

Nadpisuje domyślne opcje konfiguracyjne przez następujące klucze/wartości w tabeli config.

KluczOpisDomyślna
alwaysOnTopJeśli true, pokazuje ikony lokalizatora nad wszystkim, zapobiegając ich zasłanianiu przez obiekty 3D w świecie.true
showAllPlayersJeśli true, pokazuje lokalizacje dla wszystkich graczy, a nie tylko przyjaciół; może to pomóc w weryfikacji funkcjonalności modułu w Studio.false
teleportToFriendTeleportuje postać gracza do lokalizacji przyjaciela, gdy jego ikona lokalizatora jest kliknięta lub dotknięta.true
thresholdDistancePróg odległości kamery, przy którym pojawiają się ikony lokalizatorów; przyjaciele bliżej tej odległości nie będą wyświetlać ikon.100
maxLocatorsMaksymalna liczba ikon lokalizatorów wyświetlanych w danym momencie.10
LocalScript - ConfigureFriendsLocator

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

Zdarzenia

clicked

Uruchamia się, gdy lokalizator ikona jest kliknięta/aktywna przez lokalnego gracza. To zdarzenie może być połączone tylko w LocalScript.

Parametry
player: PlayerGracz, do którego należy ikona lokalizatora.
playerCFrame: CFrameCFrame korpusu Humanoid.RootPart, do którego należy ikona lokalizatora.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local FriendsLocator = require(ReplicatedStorage.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("Kliknąłeś ikonę lokalizatora dla", player.DisplayName, "na pozycji", playerCFrame.Position)
end)

visibilityChanged

Uruchamia się, gdy ikona lokalizatora jest pokazywana/ukrywana na ekranie lokalnego gracza. To zdarzenie może być połączone tylko w LocalScript.

Parametry
player: PlayerObiekt Player, do którego należy ikona lokalizatora.
playerCFrame: CFrameCFrame korpusu Humanoid.RootPart, do którego należy ikona lokalizatora.
isVisible: booleanOkreśla, czy ikona lokalizatora jest obecnie widoczna na ekranie lokalnego gracza. Należy zauważyć, że nadal będzie to true, jeśli alwaysOnTop jest false i ikonka renderuje za obiektem w świecie 3D.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("Widoczność ikony lokalizatora dla", player.DisplayName, ":", isVisible)
end)
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.