Unity4.6でUIのTextを複製する方法

[code]

    public Text[] text;
    
    for(int i = 0; i < 10; i++){
       text[i].transform.position = new Vector3(X, Y, Z);
       Instantiate(text);   
    }
    
[/code]

と言った形でUnityのTextを複製しようと考えましたが、座標は確かに10個存在するものの、Textが表示されませんでした。
Unity4.6から搭載されたUIをスクリプトから生成するにはどのようにすればよろしいでしょうか？




Textを複製する場合も結局は GameObject単位で管理することになるので、GameObjectをInstantiateするコードを書いてみました。

あと、先のコードからは、10個のTextを複製（合計20個）したいのか、1個のTextを10個複製（合計11個）したいのか分からなかったので、両方とも用意してみました。
※いずれも元となるTextはCanvasの下に既に配置済みであるという前提です。

10個のTextを複製する場合：

[code]

    public GameObject[] text;  // インスペクタなどで事前に設定
    
    void Start () {
        for(int i = 0; i < 10; i++){
            var o = Instantiate(text[i]) as GameObject;
            o.transform.localPosition = new Vector3(X,Y,Z);
            o.transform.parent = text[i].transform.parent;  // 元のTextと同じ親にする
        }
    }
    
[/code]

1個のTextを10個複製する場合：

[code]

    public GameObject originalText;  // インスペクタなどで事前に設定
    GameObject[] text;
    
    void Start () {
        text = new GameObject[10];
        for(int i = 0; i < 10; i++){
            text[i] = Instantiate(originalText) as GameObject;
            text[i].transform.localPosition = new Vector3(X,Y,Z);
            text[i].transform.parent = originalText.transform.parent;  // 元のTextと同じ親にする
        }
    }
    
[/code]




uGUI の UI 要素は、Canvas の子要素でないと描画されません。  
Hierarchy 上に Canvas 要素がなければ追加しましょう。

その上で、Text 要素を Canvas (またはその子要素) の子要素にする必要があります。  
以下のコードを追加してみてください。

[code]

    text[i].transform.SetParent(UnityEngine.Object.FindObjectOfType<Canvas>().transform);
    
[/code]

