web-dev-qa-db-ja.com

Unity3dのシーンにゲームオブジェクトを動的に追加します

オファーのリストを表示したいシーンを作成しています。オファーを表示するために、実行時に取得するオファーの詳細用のプレースホルダーを持つプレハブを作成しました。シーンにプレースホルダーを作成して、プレハブをシーンに追加しましたが、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の初心者であり、ここで何が欠けているのかわかりません。

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

以下は、オブジェクトを使用してGameObjectを作成しますOwn Transform settings。

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

以下は、オブジェクトを使用してGameObjectを作成しますParents Transform settings。

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

これが役立つかどうかはわかりませんが、ゲームの幸運を祈ります:)

13
UnityFan2013

Unityでは、このようにできます。

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

参照: http://docs.unity3d.com/Documentation/ScriptReference/Object.Instantiate.html

特にPositionの場合、カメラの前に配置する必要があります。そうしないと表示されない場合があります。

さらに、NGUIをご覧になることをお勧めします。開発に役立つAPIを備えた強力なGUIシステムです。ところで、私はそのようなことなしにゲームを開発することがどれほど難しいか想像できないので、遅かれ早かれ必要になるかもしれません; \

これにより、簡単に行うことができます。

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

UPDATE:

私がこれに答えたとき、NGUIは[〜#〜] only [〜#〜]使用可能なguiシステムなので、推奨しました。ただし、公式のUnity UIシステム(別名uGUI)があり、NGUIを実際に使用する必要はありません。GUI戦争はまだ続いています。

さらに、プールシステムへのテイクをしたいかもしれません。弾丸や立方体などの巨大なゲームオブジェクトを処理するために使用されます。同じシーンに何百もの特定のゲームオブジェクトがあり、インスタンス化に苦しんでいる場合、おそらくプールが必要です。個人的にはFastPoolを試してみましたが、うまく機能します。実際、すべての種類のアセットはまったく同じように機能します。

8
zhuchun