StarterPlayer は、新たにゲームに参加する各プレイヤーに関する設定やプロパティを制御するためのサービスです。StarterPlayer 内の全てのスクリプトとモジュールスクリプトは、新しいプレイヤーがゲームに参加するたびにそのプレイヤーへコピーされます。
StarterPlayer 内には、StarterCharacterScripts と StarterPlayerScripts が存在します。キャラクターモデルに関するスクリプトは StarterCharacterScripts に、プレイヤーに関するスクリプトは StarterPlayerScripts に入れます。
StarterCharacterScripts
StarterCharacterScripts に入れたスクリプトは、Workspace 上に作成されるキャラクターモデル内に入ります。従って、その script.Parent はキャラクターモデルになるということです。
キャラクターモデルが作られる度にリロードされるスクリプトになります。
以下は StarterCharacterScripts を使ったプログラム例です。StarterCharacterScripts に Script を追加します。
-- プレイヤーのキャラクターが生成されたときに実行されるプログラム
local character = script.Parent -- このスクリプトの親はキャラクターモデル
local humanoid = character:WaitForChild("Humanoid") -- キャラクターのヒューマノイド
-- HumanoidのHealthが変わったときに実行する関数を定義
local function onHealthChanged(health)
print("Health changed to: " .. health)
end
-- HumanoidのHealthが変わるたびにonHealthChanged関数を実行
humanoid.HealthChanged:Connect(onHealthChanged)
StarterPlayerScripts
StarterPlayerScripts に入れたスクリプトは、Players 内の各プレーヤーの PlayerScripts に入ります。プレイヤーに関する処理になりますので LocalScript のみになります。
ゲームにプレイヤーが入った際にコピー実行されます。死亡しても消えませんしリロードもされません。
以下は StarterPlayerScripts を使ったプログラム例です。StarterPlayerScripts に LocalScript を追加します。
-- プレイヤーがゲームに参加したときに実行されるスクリプト
-- ウェルカムメッセージを表示する関数を定義
local function displayWelcomeMessage()
local player = game.Players.LocalPlayer -- このスクリプトを実行しているプレイヤーを取得
print("Welcome to the game, " .. player.Name .. "!")
end
-- ウェルカムメッセージを表示
displayWelcomeMessage()