1

これはばかげた質問のように思えるかもしれませんが、私はそれにこだわっています。リスト ( List<GameObject>) に GameObjects があり、それらをシーン ランタイムに、できれば事前に定義された場所 (プレースホルダーなど) に追加したいと考えています。それを行う良い方法は何ですか?私はネットを検索してきましたが、これを解決するものは本当に見つかりません。これまでの私のコードは次のとおりです。

public static List<GameObject> imglist = new List<GameObject>();
private Vector3 newposition;
public static GameObject firstGO;
public GameObject frame1;//added line

void Start (){
newposition = transform.position;
firstGO = GameObject.Find ("pic1");
frame1 = GameObject.Find ("Placeholder1");//added line

//this happens when a button is pressed
imglist.Add(firstGO);
foreach(GameObject gos in imglist ){
            if(gos != null){
                print("List: " + gos.name);
                try{
                    //Vector3 temp = new Vector3 (0f, 0f, -5f);
                    Vector3 temp = new Vector3( frame1.transform.position.x, frame1.transform.position.y, -1f);//added line
                    newposition = temp;
                    gos.transform.position += newposition;
                    print ("position: " + gos.transform.position);
                }catch(System.NullReferenceException e){}
            }
        }
}

写真 (5) を所定の場所に配置するにはどうすればよいですか?

//----------------

編集: 1 つの画像をプレースホルダー (透明な png) に配置できるようになりました。何らかの理由で z 値が至る所にあるため、強制的に -1f にする必要がありますが、それで問題ありません。他のシーンの画像をリストに追加すると、1 ~ 5 枚の画像が表示されます。プレースホルダーを別のリストまたは配列に入れる必要がありますか? 私はここで少し迷っています。

4

3 に答える 3

1

すでに 5 つの新しいオブジェクトを作成している場合は、次のように行うことができます: http://unity3d.com/learn/tutorials/modules/beginner/scripting/invokeScriptの下

foreach(GameObject gos in imglist)
{
    Instantiate(gos, new Vector3(0, 2, 0), Quaternion.identity);
}
于 2015-02-12T11:53:41.070 に答える
0

あなたが何をしようとしているのかよくわかりませんが、私が正しく、オブジェクトのリストがあり、実行時にそれらを移動したい場所がわかっている場合は、2 つのリストを作成します。一方にはオブジェクトとそれらの事前定義された位置に配置されたシーン内の空のゲームオブジェクトの変換を含むもので、実行時にそれらを一致させます。

インスペクターから両方のリストを作成します。

public List<GameObject> imglist = new List<GameObject>();
public List<Transform> imgPositions = new List<Transform>();


void Start()
{
    for(var i = 0 i < imglist.Count; ++i)
    {
        imglist[i].transform.position = imgPositions[i].position
    }
}
于 2015-02-13T08:30:36.983 に答える