2016-09-19 14 views
0

Unity3Dでは、ワールドスペースにGUIを描画したいと思っています。 UIが静的でないことが必要です。スクリプトから作成する必要があります。unityスクリプトから直接キャンバスに描画する

しかし、私はこれを行う方法を理解できません。 GUIの呼び出し:Box()は、画面UIにボックスを追加するだけです。

編集:

私はいくつかの研究を行なったし、GUI要素がキャンバスレンダラとスクリプトを使用していることを考え出しました。

そのない問題は、キャンバスのレンダラ

GameObject o = new GameObject(child.OriginalName); 
o.AddComponent<CanvasRenderer>(); 

を追加するしかし、私は、スクリプトを追加傾けます。

また、GUITextコンポーネントを使用しようとしました。

o.AddComponent<GUIText>(); 
o.transform.position = new Vector3(0, 0, 0); 
o.AddComponent<CanvasRenderer>(); 
o.GetComponent<GUIText>().text = child.InnerHtml; 
o.GetComponent<GUIText>().font = Font.CreateDynamicFontFromOSFont("Arial", 5); 
o.GetComponent<GUIText>().fontSize = 5; 

しかしこれは、私は仕事にこれを得た

+1

正確には何を変更したいのですか?例えば。その一部を有効/無効にしたい場合は、UIを使用している場合(OnGuiではなく、その2つは関係ありません)簡単に行うことができます。 –

+1

Unityでは、UIオブジェクトを2次元、3次元などのいずれかで描画する2番目のカメラでUIをレンダリングするのはかなり一般的です。次に、それらのオブジェクトを操作することができます。 – rutter

+0

これはあなたが欲しいものであるかどうかはわかりませんが、http://answers.unity3d.com/questions/849176/how-to-create-a-canvas-and-text-ui-46-object -using.html –

答えて

0

オーケー、正確には何も表示されません、ここでキャプテンの必要はありません。

この

using UnityEngine.UI; 

を含め、その後のuはUIコンポーネントへのアクセスをHAVA。例えば Oがゲームオブジェクトのテキスト

o.AddComponent<CanvasRenderer>(); 
o.AddComponent<Text>(); 
o.GetComponent<Text>().text = "Text" 
o.GetComponent<Text>().font = Font.CreateDynamicFontFromOSFont("Arial", 7); 
o.GetComponent<Text>().fontSize = 7; 
o.GetComponent<Text>().alignment = TextAnchor.MiddleRight; 

はちょうどゲームオブジェクトの親としてキャンバスを設定し、それが正常に動作し

関連する問題