Help us understand the problem. What is going on with this article?

Canvas内でImageをInstantiateする備忘録(自動生成)

More than 1 year has passed since last update.

前回グダグダ書きすぎたので今回は簡潔に。

Canvas内でimageを自動生成させようと試みるもオブジェクトは生成されるのにimageが表示されない!ということがありました。
今回はCanvas内でInstantiateする方法の備忘録。

Canvasの親要素、子要素

Canvas内でimageを表示させるにはCanvasを親要素として配置しないといけないんですね。

hoge.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class hoge : MonoBehaviour
{
    [SerializeField]
    GameObject hogehoge;

    [SerializeField]
    GameObject canvas;

    // Use this for initialization
    void Start()
    {
        GameObject prefab = (GameObject)Instantiate(hogehoge);
        prefab.transform.SetParent(canvas.transform, false);
    }

    // Update is called once per frame
    void Update()
    {

    }
}

上記が参考にしたサイトをちょこっといじったコードです。
ネットで調べると同じようなコードがわんさか出てきましたw
これだとhogeがCanvasの子要素になるのでちゃんと表示されるようになります・・・が、今回やりたいのが「◯秒おきに自動生成」です。

自動生成する

上記のコードをまたちょこっといじって自動生成できるように編集します。

hoge.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class hoge : MonoBehaviour
{
    [SerializeField]
    GameObject hogehoge;

    [SerializeField]
    GameObject canvas;

    // Use this for initialization
    void Start()
    {
        StartCoroutine("Hoge");
    }

    // Update is called once per frame
    void Update()
    {

    }

    IEnumerator Hoge()
    {
        while (true)
        {
            GameObject prefab = (GameObject)Instantiate(hogehoge);
            prefab.transform.SetParent(canvas.transform, false);
            yield return new WaitForSeconds(10f);
        }
    }
}

これで10秒おきに自動生成されるようになりました。

まとめ

上記コードだと自動生成はされるようになりますが、座標がずっと一緒。。。
まだまだUnity初心者なので忘れないうちに備忘録として書きました。
次は座標!

参考にさせていただいたサイト↓
http://mhgames.blog.fc2.com/blog-entry-14.html

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした