1. AncestryChangedとは
本記事では、Roblox Studioに用意されているイベントの1つであるAncestryChangedを試してみます。AncestryChangedは、親要素が変更となった場合にトリガーされるイベントとなります。
2. 使用する機能
・Script
・AncestryChanged
3. 手順
まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。
Workspaceの子要素にFolderを2つ作成し、それぞれFolderAとFolderBという名前にします。また、Scriptを追加します。
FolderAの子要素にPartを追加します。
Scriptに以下のコードを記入します。今回、AncestryChangedというイベントを発生させるため、PartをFolderAからFolderBに移動させるコードを記入しています。
local folderA = workspace.FolderA
local folderB = workspace.FolderB
local part = folderA:WaitForChild("Part")
local function onAncestryChanged(child, parent)
print(child.Name .. " の新しい親: " .. parent.Name)
end
part.AncestryChanged:Connect(onAncestryChanged)
part.Parent = folderB
上記コードの簡単な解説は以下となります。
- local folderA = workspace.FolderA
workspace内のFolderAを参照し、FolderAをローカル変数のfolderAに格納します。 - local folderB = workspace.FolderB
workspace内のFolderBを参照し、FolderBをローカル変数のfolderBに格納します。 - local part = folderA:WaitForChild(“Part”)
Partオブジェクトがロードされるのを待ち、それをローカル変数partに格納します。 - local function onAncestryChanged(child, parent)
AncestryChangedイベントが発生したときに実行される関数onAncestryChangedを定義します。この関数は子オブジェクト(child)と新しい親オブジェクト(parent)の名前を出力します。 - print(child.Name .. ” の新しい親: ” .. parent.Name)
子オブジェクトと新しい親オブジェクトの名前を使用して、文字列を出力します。 - part.AncestryChanged:Connect(onAncestryChanged)
partオブジェクトのAncestryChangedイベントに先ほど定義したonAncestryChanged関数を接続します。 - part.Parent = folderB
partの親をfolderAからfolderBに変更します。これによりAncestryChangedイベントがトリガーされ、onAncestryChanged関数が呼び出されます。
実行結果、AncestryChangedが発生した場合に呼び出される関数onAncestryChangedが正しく動作しました。よって、以下の出力となりました。
実際に、Partの位置を確認すると、FolderAからFolderBに移動していることが分かります。
この記事を通じて、AncestryChangedの機能について学びました。AncestryChangedは指定のオブジェクトの親要素の変更によりトリガーされるイベントとなります。
コメント