Unityでオブジェクトを動的生成する
スクリプトによってオブジェクトを自動生成させる。
新しくspriteを追加して,Assetに適当な画像を追加し,その画像をNew SpriteのSpriteにドラッグ&ドロップする。
Assetsにフォルダを加える。名前は「Resources」にする。こうしないと動かない。
理由としては内部的にResourcesフォルダの中のファイルを取得できる「Resources関数」を使用するかららしい。
プレハブ(Prefab)を作成する。
New SpriteをResourcesフォルダにドラッグ&ドロップする。
Hierarchyを右クリックしてCreateEmptyする。
GameObjectに新しくスクリプトをAdd Componentする。
スクリプト名はなんでもいいが、とりあえずAddObjectにしてCreate and Addを押す。
スクリプトファイルをダブルクリックするとvisual studioが開く。
スクリプトの中身をアタッチする。
元のこれを
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CreateObject : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
Start()関数をいじってこのよう変更する
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AddObject : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
// ResourcesフォルダにあるNew SpriteプレハブをGameObject型で取得
GameObject obj = (GameObject)Resources.Load("New Sprite");
// New Spriteプレハブを元に、インスタンスを生成、
Instantiate(obj, new Vector3(0.0f, 2.0f, 0.0f), Quaternion.identity);
}
// Update is called once per frame
void Update()
{
}
}
指定した位置(今回は中心からちょっと上)にオブジェクトが出現する。
Hierarchyにもクローンが生成される(増えてくると番号が割り振られる?)。
Author And Source
この問題について(Unityでオブジェクトを動的生成する), 我々は、より多くの情報をここで見つけました https://qiita.com/ReoNagai/items/928778c0f7e8b8c2dc21著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .