一个容器的内容首先复制到所有客户端(但不会返回到服务器),然后再复制到其他任何东西。
复制第一个为什么?
复制第一个最常用于存储游戏开始必需的对象。复制第一个内容到客户端之前,在游戏中创建其他对象,它是理想的创建加载 GUI 或教程。
对于不需要复制的对象,开发人员应该使用 ReplicatedStorage 容器。
如何使用 ReplicatedFirst?
LocalScripts 放置在 ReplicatedFirst 中运行。这意味着为自定义加载屏幕或其他 ReplicatedFirst 使用的代码可以在最早的时候运奔跑。
在 ReplicatedFirst 中运行 LocalScripts 时,开发人员需要记住以下一些关键考虑。
- 它的内容在游戏中的任何其他东西之前重复,这意味着 LocalScripts 在 ReplicatedFirst 运行时需要等待任何它们需要复制使用 Instance:WaitForChild() 的对象。
- 复制的第一个使用 LocalScript 的对象也应该成为 ReplicatedFirst 的父级。否则,它们可能会迟一点复制到客户端,并且否定 ReplicatedFirst 的好处。
复制第一个还包括 ReplicatedFirst:RemoveDefaultLoadingScreen() 功能,可以立即移除默认 Roblox 加载屏幕。注意任何对象在 ReplicatedFirst 中放置后,默认加载屏幕将在 5 秒后移除,无论此功能是否调用或不是。
代码示例
Custom Loading Screen
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()
概要
方法
立即移除默认 Roblox 加载屏幕。如果任何对象已放置在 ReplicatedFirst ,默认加载屏幕将在 5 秒后无论是否调用此功能仍然会移除。
属性
方法
RemoveDefaultLoadingScreen
void
立即移除默认 Roblox 加载屏幕。如果任何对象已放置在 ReplicatedFirst ,默认加载屏幕将在 5 秒后无论是否调用此功能仍然会移除。
开发人员应该从 LocalScript 在 ReplicatedFirst 中运行此函数,因为 ReplicatedFirst 中的脚本将在任何其他东西之前执行。
建议不要移除默认加载屏幕,除非开发者希望将其自己的加载屏幕作为替代。如果默认屏幕被移除,用户无法在后台看到几何图形加载。
返回
void
代码示例
Custom Loading Screen
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()