Динамическое добавление 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 и не уверен,что мне здесь не хватает.

2 ответов


//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;

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


в Unity вы можете сделать это так.

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

см. также : http://docs.unity3d.com/Documentation/ScriptReference/Object.Instantiate.html

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

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

С ним вы можете сделать это легко.

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

обновление:

когда я ответил на это, НГУИ-это только полезная система gui, поэтому я рекомендовал ее. Тем не менее, есть официальная система Unity UI(она же uGUI), вам действительно не нужно использовать NGUI, оставьте в покое войну gui все еще продолжается.

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