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

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

- URL：https://roblox.minecraft-okinawa.com/basics/waitforchild/
- 更新日：2026-11-13

## 2つの違い

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

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

（LocalScript／置く場所：StarterPlayerScripts）

```lua
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で待っている名前の子が、いつまでも現れないときに出る警告です。名前の打ち間違い（大文字・小文字も区別されます）や、置き場所の間違いがないかを確かめましょう。くわしくは[つまずき集](https://roblox.minecraft-okinawa.com/troubleshooting/infinite-yield/)で解説しています。

執筆：鈴木孝昌（現役プロジェクトマネージャー／プログラミング講師）／運営：沖縄マイクラ部 プログラミングスクール「クロスウェーブ」（https://minecraft-okinawa.com/）