ReplicatedFirst
*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.
Kontener, który jego zawartość jest replikowana do wszystkich klientów (ale nie do serwera) najpierw przed czymkolwiek innym.
Dla czego jest ReplicatedFirst?
ReplicatedFirst jest najczęściej używany do przechowywania LocalScripts i innych obiektów, które są niezbędne dla rozpoczynaćgra. Jak treści ReplicatedFirst replikowane są na klienta przed jakąkolwiek inną w gra, jest idealny do tworzenia ładowanie interfejsy użytkownika lub tutoriali.
Dla obiektów, które nie muszą być replikowane najpierw, rozwój powinien użyć kontenera ReplicatedStorage zamiast tego.
Jak mogę użyć ReplicatedFirst?
LocalScripts umieszczony w ReplicatedFirst będzie uruchomiony. Oznacza to, że kod dla niestandardowych ekranów ładowania lub innych ekranów ładowania ReplicatedFirst może być uruchomiony w najwcześniejszym możliwym punkcie.
Istnieje wiele kwestii kluczowych, które rozwinięte zespoły muszą pamiętać podczas uruchamiania LocalScripts w ReplicatedFirst.
- Jego treści replikują się przed czymkolwiek innym w gra, co oznacza, że LocalScripts uruchomione w ReplicatedFirst będzie musiało czekać na wszystkie obiekty, które wymagają replikacji używając Instance:WaitForChild()
- Wszystkie obiekty, które mają być używane przez LocalScript w ReplicatedFirst, powinny również być związane z ReplicatedFirst. W przeciwnym razie mogą one zostać sklonowane do klienta później, co zapewnia skrypt i neguje korzyść z ReplicatedFirst.
ReplicatedFirst obejmuje również funkcję ReplicatedFirst:RemoveDefaultLoadingScreen(), która może być używana do natychmiastowego usuwania ekranu ładowania Roblox. Uwaga, jeśli jakikolwiek obiekt został postawiony w ReplicatedFirst, ekran ładowania domyślnego będzie usuwany po 5 sekundach, niezależnie od tego, czy funkcja ta została wywołana czy nie.
Przykłady kodu
local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Create a basic loading screen
local screenGui = Instance.new("ScreenGui")
screenGui.IgnoreGuiInset = true
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)
textLabel.Font = Enum.Font.GothamMedium
textLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)
textLabel.Text = "Loading"
textLabel.TextSize = 28
textLabel.Parent = screenGui
-- Parent entire screen GUI to player GUI
screenGui.Parent = playerGui
-- Remove the default loading screen
ReplicatedFirst:RemoveDefaultLoadingScreen()
--wait(3) -- Optionally force screen to appear for a minimum number of seconds
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()
Podsumowanie
Metody
Natychmiastowo usuwa domyślną stronę ładowania Roblox. Uwaga, jeśli jakikolwiek obiekt został postawiony w ReplicatedFirst, strona ładowania domyślna zostanie usunięta po 5 sekundach, niezależnie czy funkcja ta została wezwana czy nie.
Właściwości
Metody
RemoveDefaultLoadingScreen
Natychmiastowo usuwa domyślną stronę ładowania Roblox. Uwaga, jeśli jakikolwiek obiekt został postawiony w ReplicatedFirst, strona ładowania domyślna zostanie usunięta po 5 sekundach, niezależnie czy funkcja ta została wezwana czy nie.
Rozwój powinien zostać wykonany z funkcji LocalScript w ReplicatedFirst, ponieważ skrypty w ReplicatedFirst będą wykonane przed czymkolwiek innym.
Rekomendujemy nie usuwać domyślnego ekranu ładowania, chyba że rozwinięty deweloper chce wyświetlić własny ekran ładowania jako alternatywę. Jeśli domyślny ekran zostanie usunięty bez zastąpienia użytkowników będą mogli widzieć ładowanie geometri w tle.
Zwroty
Przykłady kodu
local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Create a basic loading screen
local screenGui = Instance.new("ScreenGui")
screenGui.IgnoreGuiInset = true
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)
textLabel.Font = Enum.Font.GothamMedium
textLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)
textLabel.Text = "Loading"
textLabel.TextSize = 28
textLabel.Parent = screenGui
-- Parent entire screen GUI to player GUI
screenGui.Parent = playerGui
-- Remove the default loading screen
ReplicatedFirst:RemoveDefaultLoadingScreen()
--wait(3) -- Optionally force screen to appear for a minimum number of seconds
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()