モジュールスクリプト

モジュールスクリプト

モジュールスクリプトは、サーバースクリプトとクライアントスクリプトの両方で使用できる再利用可能なコードの一部です。

複数の場所で使用されるコードを整理し、ゲーム内の異なるスクリプト間で関数やデータを共有しやすくします。

ユーティリティライブラリ数学演算やデータ変換などの一般的なタスク
ゲームステート管理プレイヤーのスコア、レベル、ゲームフェーズなどのゲームの全体的なステートを管理します。
データ管理複数のスクリプトからアクセスおよび修正する必要があるプレイヤーデータを保存・管理します。
共有設定異なるスクリプト間で共有する必要のある設定や定数を保存します。
local UtilityModule = {} 

function UtilityModule.reverseString(str) 
   return str:reverse() 
end 

function UtilityModule.roundNumber(num) 
   return math.floor(num + 0.5) 
end 

return UtilityModule
local GameStateModule = {}
GameStateModule.scores = {}

function GameStateModule.addScore(player, score)
    if not GameStateModule.scores[player] then
        GameStateModule.scores[player] = 0
    end
    GameStateModule.scores[player] = GameStateModule.scores[player] + score
end

function GameStateModule.getScore(player)
    return GameStateModule.scores[player] or 0
end

return GameStateModule
local PlayerDataModule = {}
PlayerDataModule.data = {}

function PlayerDataModule.setData(player, key, value)
    if not PlayerDataModule.data[player.UserId] then
        PlayerDataModule.data[player.UserId] = {}
    end
    PlayerDataModule.data[player.UserId][key] = value
end

function PlayerDataModule.getData(player, key)
    return PlayerDataModule.data[player.UserId] and PlayerDataModule.data[player.UserId][key]
End

return PlayerDataModule
local ConfigModule = {}

ConfigModule.GRAVITY = 196.2
ConfigModule.MAX_PLAYERS = 10

return ConfigModule
local Utilities = require(game.ReplicatedStorage.UtilityModule)
print(Utilities.reverseString("Roblox"))
print(Utilities.roundNumber(3.6))

local GameState = require(game.ServerScriptService.GameStateModule)
game.Players.PlayerAdded:Connect(function(player)
    GameState.addScore(player, 10)
    print("Score for player " .. player.Name .. ": " .. GameState.getScore(player))
end)

このチュートリアルがお役に立ちましたら、私の仕事をサポートするためにコーヒーをおごっていただけると嬉しいです。

ご支援、誠にありがとうございます!

コーヒーをおごる