1. Roblox StudioのFindFirstChildとは
Roblox Studioには、FindFirstChildという関数があります。FindFirstChildを使うことで、指定した子要素の中で最初に見つかったものを返すことができます。
以下では、FindFirstChildの機能紹介と他のコードとの比較を行います。
2. 使用する機能と主なコード
【機能】
・Script(スクリプト)
【コード】
・FindFirstChild
3. FindFirstChildの簡単な使い方
まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。
Partを追加します。
「Script」を作成し、以下のコードを記述します。
local part1 = workspace:FindFirstChild("Part")
print(part1.Size)
「FindFirstChild」は指定した子要素の中で最初にみつかったものを返します。そのため、上記コードではWorkspaceの中にある「Part」を返しそうです。
Partを取得できているならば、print文でpart1.Sizeを表示させた場合、
「4, 4, 4」と出力されそうです。※実際のPartのSizeが(4,4,4)
では、実行してみます。
予想通り「4, 4, 4」と表示されました。
「FindFirstChild」を使わないで、同じ結果を出してみます。
local part1 = workspace:FindFirstChild("Part")
local part2 = workspace.Part
print(part1.Size)
print(part2.Size)
上記コードの「workspace.Part」もworkspaceの子要素のPartを示すので、
「workspace:FindFirstChild(“Part”)」と同じ結果となりそうです。
では、実行してみます。
予想通り、同じ結果となりました。
であれば、わざわざ「FindFirstChild」を使う必要はなさそうです。
しかし、「workspace.Part」と「part1.Size」は一見同じコードに見えますが、抽象化すると「インスタンス.インスタンス」「インスタンス.プロパティの項目」となっています。
つまり、インスタンスかプロパティの項目かの区別がつかない場合、意図しない結果になってしまいそうです。
試しに、Partの中に「Size」という名前のフォルダを作成してみます。
そして、以下のコードを記述します。
local p1 = workspace.Part.Size
local p2 = workspace.Part:FindFirstChild("Size")
print(p1)
print(p2)
「workspace.Part.Size」は、PartのプロパティのSizeを指しているのか、Partの中の「Size」というフォルダを指しているのか曖昧です。
一方、「workspace.Part:FindFirstChild(“Size”)」はPartの子要素にある「Size」を指しているため、「Size」のフォルダを取得しそうです。
実際に実行してみます。
「workspace.Part.Size」は、PartプロパティのSizeの値を返し、「workspace.Part:FindFirstChild(“Size”)」は、Partの子要素にある「Size」というフォルダを返しました。
4. まとめ
・「FindFirstChild」を使用することで指定の子要素を取得できる
コメント