Robloxでコンポーネントをスクリプトから生成する

Instance.new(コンポーネント名)で生成する

コンポーネントをスクリプトから生成するには、Insatance.new()を使用します。引数には複製するコンポーネントの名称を渡します。

--例えば...

local tempPart = Instance.new("Part")  --Partを生成する

local tempDecal = Instance.new("Decal")  --Decalを生成する

--などなど...

渡すことができるコンポーネントは、Explorerに表示される+ボタンから確認してください。大文字小文字を区別するので、タイプミスに気を付けましょう。

シーン内に表示するオブジェクトはWorkspaceに移す

PartやMeshPartは、Instance.newで生成しただけだと表示されません。シーンで可視化するにはWorkspace以下に配置されている必要があります。Workspaceに移動するには、

local temp = Instance.new("Part")
temp.Parent = game.Workspace

のように、生成したコンポーネントの親をワークスペースに設定しましょう(もしくはワークスペースに属するオブジェクトを親にします)。

Instance.newの第二引数に親を指定する

上記のようにparentにオブジェクトを指定することもできますが、Instance.newと同時に親を指定することもできます。そのためには、Instance.newの第二引数に目的のオブジェクトを渡します。

local targetObject = game.Workspace:WaitForChild("親にするオブジェクト") --親にするオブジェクトを検索
local tempPart= Instance.new("Part", targetObject)

Instance.newの第一引数と違って、第二引数に渡すオブジェクトは文字列ではないことに注意しましょう。なにかしらのオブジェクトをWorkspaceなどから検索して渡すようにしてください。

こちらの方法だと、余分なコードを一行減らすことができます。負荷の面ではそれほど効果があるようには思いませんが、可読性が上がる場合もあるので、状況に応じて使ってみてください。

まとめ

なにかをコードから生成するにはInstance.new()を使います。頻繁に出てくるメソッドなので、必ず使いこなせるようにしましょう。

Robloxに関する開発Tipsは、こちらの辞書引きページがおすすめです。ぜひ、こちらから参考になるページを探してみてください!

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です