【Roblox】組み込みリーダーボードを作成する
はじめに
こんにちは、まつさこ です。
Robloxでゲームを開発する際、プレイヤー同士のスコアを比較するためのリーダーボードを作成することがあります。今回は、Robloxの組み込みリーダーボード(In-Experience Leaderboards)を活用して、簡単にリーダーボードを作成する方法について解説します。
公式ドキュメントはこちら
組み込みリーダーボードとは
Robloxをプレイする時に、右上に表示されるスコアボードがあります。これが組み込みリーダーボード(In-Experience Leaderboards)です。このリーダーボードを活用することで、各プレイヤーのスコアやパラメータをリアルタイムで確認することができます。
リーダーボードの初期化
今回、 💎Gem という名前の Int
型の値を表示・更新する方法を紹介します。
まず、サーバースクリプトを作成します。
プレイヤーがゲームに参加したときに、leaderstats
という名前のフォルダを作成し、Playerオブジェクトの子オブジェクトとして配置します。
その leaedrstats
フォルダ内に、 💎 Gem
という名前の IntValue
を作成します。
IntValue
の値を 0
に初期化しておきます。
local Players = game:GetService("Players")
local function leaderboardSetup(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gem = Instance.new("IntValue")
gem.Name = "💎 Gem"
gem.Value = 0
gem.Parent = leaderstats
end
Players.PlayerAdded:Connect(leaderboardSetup)
これで、ゲームを開始するとリーダーボードが表示されるようになります。
スコアの更新
スコアを更新するには、 💎 Gem
の値を変更します。
新しく updateGem()
関数を作成し、プレイヤーと値を引数として渡します。
Playerオブジェクトから leaderstats
フォルダを取得し、その中から 💎 Gem
を取得して値を更新します。
以下がサンプルのコードです。プレイヤーが参加してから3秒後に、 💎 Gem
の値を 100
に更新します。
local Players = game:GetService("Players")
local function leaderboardSetup(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gem = Instance.new("IntValue")
gem.Name = "💎 Gem"
gem.Value = 0
gem.Parent = leaderstats
end
local function updateGem(player, val)
local leaderstats = player and player:FindFirstChild("leaderstats")
repeat
wait()
until leaderstats
local gem = leaderstats and leaderstats:FindFirstChild("💎 Gem")
if gem then
gem.Value = val
end
end
Players.PlayerAdded:Connect(function(player)
leaderboardSetup(player)
wait(3)
updateGem(player, 100)
end)
上手く行きました!
まとめ
今回は、Robloxの組み込みリーダーボードを活用して、リーダーボードを作成する方法について解説しました。
ぜひ、自分のエクスペリエンスにリーダーボードを導入してみてください!
読んでくださりありがとうございました🤗
Discussion