この記事を三行にまとめると
オブジェクトの作成方法正確には複製方法
Instantiate
この記事は以下の動画の中に出てきたサンプルコードを載せたものです。コピペなどが必要なときに使ってください。
タイトルではオブジェクトの作成と言っていますが、正確にはオブジェクトの複製と言った方が良いかもですね。手順としては元となるオブジェクトを用意し、それをスクリプトで複製するという形です。
元となるオブジェクトはヒエラルキーにあるオブジェクトでも良いですし、Prefabを複製することもできます。
コードはこんな感じです。
jewelは元となるオブジェクトです。今回は宝石の画像オブジェクトをここに入れています。
parentは複製先の親オブジェクトです。新たに複製したオブジェクトはこのparentの子オブジェクトになります。親オブジェクトを指定しなくてもエラーにはなりませんが、ImageやText、ButtonなどはCanvasオブジェクトの中にないといけないので、これらを複製する場合はCanvasオブジェクトを親にすると良いでしょう。
Instantiateのドキュメント
https://docs.unity3d.com/ja/2022.2/ScriptReference/Object.Instantiate.html
タイトルではオブジェクトの作成と言っていますが、正確にはオブジェクトの複製と言った方が良いかもですね。手順としては元となるオブジェクトを用意し、それをスクリプトで複製するという形です。
元となるオブジェクトはヒエラルキーにあるオブジェクトでも良いですし、Prefabを複製することもできます。
コードはこんな感じです。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MakeJewel : MonoBehaviour {
public GameObject jewel;
public Transform parent;
public void Make() {
GameObject clone = Instantiate(jewel, parent);
clone.transform.localPosition = new Vector3(0, 100, 0);
}
}
jewelは元となるオブジェクトです。今回は宝石の画像オブジェクトをここに入れています。
parentは複製先の親オブジェクトです。新たに複製したオブジェクトはこのparentの子オブジェクトになります。親オブジェクトを指定しなくてもエラーにはなりませんが、ImageやText、ButtonなどはCanvasオブジェクトの中にないといけないので、これらを複製する場合はCanvasオブジェクトを親にすると良いでしょう。
Instantiateのドキュメント
https://docs.unity3d.com/ja/2022.2/ScriptReference/Object.Instantiate.html