Contents
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は、こちらの辞書引きページがおすすめです。ぜひ、こちらから参考になるページを探してみてください!