在Unity3d中动态添加游戏对象到场景中

本文关键字:对象 添加 Unity3d 动态 游戏 | 更新日期: 2023-09-27 18:04:35

我正在创建一个我想显示报价列表的场景。为了显示报价,我创建了一个预制件,其中包含我将在运行时获得的报价详细信息的占位符。我在场景中创建了一个占位符,将预制件添加到场景中,但它没有显示在UI上。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的新手,不知道我在这里错过了什么

在Unity3d中动态添加游戏对象到场景中

//Drag object prefab to variable in inspector
public GameObject spawnObject;
//----------------------------------------
下面将使用对象Own Transform settings创建GameObject。
 GameObject clone;
    clone = Instantiate(spawnObject.transform, 
                        spawnObject.transform.position, 
                        spawnObject.transform.rotation) as GameObject;

下面将使用Parents Transform settings创建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)

更新:

当我回答这个问题时,NGUI是唯一可用的gui系统,所以我推荐它。然而,有一个官方的Unity UI系统(又名uGUI)在那里,你真的不必使用NGUI,更不用说gui的战争仍在继续。

更重要的是,你可能想要进入游泳池系统。它用于处理大型游戏对象,如子弹、立方体等。如果你在同一个场景中有数百个特定的游戏对象,并且受到实例化的困扰,那么你可能需要一个池。就我个人而言,我尝试了FastPool,它工作得很好,实际上所有的资产都是一样的。