Добавить gameobject динамически в сцену в Unity3d

Я создаю сцену, в которой я хочу показать список предложений. Чтобы показать это предложение, я создал сборку с заполнителями для деталей предложения, которые я получу во время выполнения. Я создал место на сцене, чтобы добавить сборку к месту, но она не отображается в пользовательском интерфейсе. OfferHolderClass:

using UnityEngine;
using System.Collections;

public class OfferHolder : MonoBehaviour {

    public GameObject localOffer;
    // Use this for initialization
    void Start () {
        GameObject offer = Instantiate(localOffer) as GameObject;
        offer.GetComponent<Offer>().Text = "Testing";
        offer.transform.parent = this.transform;
    }

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

    }
}

Я новичок в Unity и не уверен, что мне здесь не хватает.

Ответы

Ответ 1

//Drag object prefab to variable in inspector
public GameObject spawnObject;
//----------------------------------------

Ниже будет создан GameObject, используя объекты Собственные Настройки преобразования.

 GameObject clone;
    clone = Instantiate(spawnObject.transform, 
                        spawnObject.transform.position, 
                        spawnObject.transform.rotation) as GameObject;

Ниже будет создан GameObject, используя настройки Родители.

 GameObject clone;
    clone = Instantiate(spawnObject.transform, 
                        transform.position, 
                        transform.rotation) as GameObject;

Не уверен, что это помогает, но удачи в вашей игре:)

Ответ 2

В Unity вы можете сделать это следующим образом.

 GameObject.Instantiate(prefab,new Vector3(1,1,0),Quaternion.identity);

Смотрите также: http://docs.unity3d.com/Documentation/ScriptReference/Object.Instantiate.html

Специально для Позиция, она должна находиться перед вашей камерой или вы ее не увидите.

Что еще, я предлагаю вам взглянуть на NGUI. Это мощная система графического интерфейса с полезным API для разработки. BTW Я не могу себе представить, как сложно разрабатывать игры без такой вещи, поэтому вам может понадобиться это рано или поздно; \

С его помощью вы можете сделать это легко.

Gameobject go = NGUITools.AddChild(Gameobject Parent, Gameobject Prefab)

UPDATE:

Когда я ответил на это, NGUI является ТОЛЬКО используемой системой gui, поэтому я рекомендовал его. Однако там есть официальная система Unity UI (AKA uGUI), вам действительно не нужно использовать NGUI, оставляя в покое войну gui по-прежнему продолжается.

Что еще, вы можете захотеть взять систему пула. Он использовался для обработки массивных игровых объектов, таких как пули, кубы и т.д. Если у вас есть сотни конкретных игровых объектов в одной и той же сцене и страдают от экземпляра, то вам, вероятно, нужен пул. Лично я пробовал FastPool, и он работает хорошо, фактически все активы такого рода работают точно так же.