ローディング画面を作成する(2)(GUI画面)

もっけ
もっけ

ゲーム開始時に、画面いっぱい画像を表示させる方法を教えるよ

たかし
たかし

何のために使うんですか?

もっけ
もっけ

画像をローディング画面にて表示することで、モデルが読み込まれるまでの間、プレイヤーに待ってもらうことが出来るよ!

出来るようになること

  • 画像をローディング画面にして、画面いっぱいに表示させる

ReplicatedFirstを使う

ローディング画面を作る場合、Replicated Firstを使おう。Replicated Firstはゲーム起動時に最優先で実行される場所なんだ。

次のローカススクリプトでは、ユーザにローディング画面を7秒間表示させたのち、透過しているよ。

-- サービス
local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui") -- プレイヤーが持つGUI画面

local screenGui = ReplicatedFirst:FindFirstChild("LoadingScreen") -- LoadingScreenを探します
screenGui.IgnoreGuiInset = true -- 画像を画面いっぱいに表示させる
screenGui.Parent = playerGui  -- プレイヤー画面に割り当てる

ReplicatedFirst:RemoveDefaultLoadingScreen() -- ロブロックスのデフォルトのロード画面を削除する
task.wait(7)  -- カスタムしたロード画面をwait秒の間は表示する

if not game:IsLoaded() then --ゲームをロード出来ていない場合は、ロードできるまで待つ
	game.Loaded:Wait()
end

local function fadeOut()
	for i = 0, 1, 0.1 do
		wait(0.02)
		screenGui.ImageLabel.ImageTransparency = i -- ロード画面を透明にしていく。ImageのBackgroundTransparencyは、1で透明にしておこう
	end
end

fadeOut()
たかし
たかし

ゲームの起動画面や、シーンが切り替わるような時にローディング画面を表示してあげれば、ゲームがリッチになりそうな気がするね!

コメント

タイトルとURLをコピーしました