WaitForChildとFindFirstChild:まだないものを待つ・探す

初級スクリプト更新日:2026年11月13日Luauの型チェック済み

ひとことで言うと

WaitForChildは、指定した名前の子が現れるまで待ってから返します。FindFirstChildは、今あるかどうかを探して、なければnilを返します。LocalScriptでは、まだ読み込まれていないものがあるので、WaitForChildを使うのが基本です。

この記事で使うAPI

Instance・Player・Humanoid

2つの違い

メソッド なかったとき 主な使いどころ
WaitForChild 現れるまで待つ LocalScriptで、キャラクターや共有の部品を使うとき
FindFirstChild すぐnilを返す あるかないかで処理を分けたいとき

例:自分のキャラクターの体力を表示する

(LocalScript/置く場所:StarterPlayerScripts)

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid") :: Humanoid

print(player.Name .. " の体力:" .. humanoid.Health)

player.Character は、まだキャラクターが出現していないとnilです。「player.Character or player.CharacterAdded:Wait()」と書くと、出現するまで待ってから使えます。

Infinite yield possible と表示されたら

WaitForChildで待っている名前の子が、いつまでも現れないときに出る警告です。名前の打ち間違い(大文字・小文字も区別されます)や、置き場所の間違いがないかを確かめましょう。くわしくはつまずき集で解説しています。

執筆・動作確認:鈴木孝昌官公庁のWeb・システム開発を担当する現役プロジェクトマネージャー。沖縄マイクラ部 クロスウェーブで、ロブロックス(Roblox)・マインクラフト(マイクラ)・Scratchなどのプログラミングを指導。マイクラカップ沖縄代表チームを指導(第6回・第7回、第7回TBS賞)。
沖縄マイクラ部で、子どもたちにロブロックス(Roblox)やマインクラフト(マイクラ)のプログラミングを教えています。プロフィールと編集方針
Instagramで教室の様子を見る
noteで記事を読む