1. Roblox StudioのFindFirstChildWhichIsAとは
Roblox Studioには、FindFirstChildWhichIsAという関数があります。FindFirstChildWhichIsAを使うことで、オブジェクトの子要素にある指定された型のインスタンスを見つけることができます。
以下では、FindFirstChildWhichIsAとFindFirstChildを比較しながら、機能の違いを確かめます。
2. 使用する機能と主なコード
【機能】
・Script(スクリプト)
【コード】
・FindFirstChildWhichIsA
・FindFirstChild
3. FindFirstChildWhichIsAの簡単な使い方
まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。
Partを追加し、その中にFolderとScriptを追加します。
Scriptに以下のコードを記述します。
local part = workspace.Part
local child1 = part:FindFirstChildWhichIsA("Folder")
print(child1)
実行してみます。
「child1」にPartの子要素にある「Folder」が代入されていると分かります。
次は、以下のコードに書き換えます。
local part = workspace.Part
local child1 = part:FindFirstChildWhichIsA("Folder")
local child2 = part:FindFirstChild("Folder")
print(child1)
print(child2)
「child2」にPartの子要素にある「Folder」を代入するコードを追加しました。
「child1」と「child2」両方とも「Folder」が代入されそうです。
実行してみます。
「child1」「child2」ともにFolderと表示されました。
これなら、FindFirstChild()だけで良く、FindFirstChildWhichIsA()の使い道がないようにみえます。
試しに、「Folder」の名前を「Folder1」に変更して実行してみます。
結果、FindFirstChildWhichIsA()では、正しく「Folder1」が取得できていました。
一方、FindFirstChild()では、なにも取得できていませんでした。
このことから、FindFirstChildWhichIsA()はインスタンスの型で検索しているのに対して、
FindFirstChildはインスタンスの名前で検索していると言えそうです。
試しに、FindFirstChildWhichIsA(”Folder1”)、FindFirstChild(”Folder1”)に書き換えて実行してみます。FindFirstChildWhichIsA()がインスタンスの型で検索しているならば、今回のような「Folder1」という型は存在しないため、「nil」が返ってきそうです。
予想通り、FindFirstChildWhichIsA()は、なにも取得できていませんでした。
一方、FindFirstChild()は、インスタンスの名前で検索しているため、「Folder1」を正しく取得できていました。
4. まとめ
・FindFirstChildWhichIsA()はインスタンスの型で検索する
・FindFirstChild()はインスタンスの名前で検索する
コメント