Добавить 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, и он работает хорошо, фактически все активы такого рода работают точно так же.