0
私のユニティバージョンは5.5.2fです。私は、テキストを作成し、それを親GameObject Aに追加するためにC#を使用しようとしますが、表示されません。親GameObject Aにテクスチャを追加して、テクスチャを見ることができます。UnityはC#でテキストを追加しますが表示されません
私はプログラムを実行すると、私はそれが問題を引き起こすかもしれないと推測するために、優先幅と優先高さがテキストのための0であるとわかりました。ここで
は私のコードで、objが親ゲームオブジェクトAである
public void setText(string value)
{
if (text == null)
{
GameObject targetObj = new GameObject();
Canvas canvas = Obj.AddComponent<Canvas>();
canvas.transform.SetParent(Obj.transform ,false);
targetObj.name = "displayTextObject";
targetObj.transform.SetParent(canvas.transform, false);
text = targetObj.AddComponent<Text>();
text.name = "displayText";
Color color = new Color(0, 0, 0);
text.color = color;
Font font = new Font("Arial");
text.font = font;
gridBgObject.SetActive(false);
}
text.text = value;
}
テキストはキャンバスの下にある必要があります。テキストに親Objectがある場合、その親ObjectはCanvasの下になければなりません。 – Programmer
@Programmer回答を編集しましたが、テキストは表示されません。キャンバスはルートオブジェクトでなければならず、親を持たないはずですか? – Pan
あなたはキャンバスをシーンにも持っていないようです。エディターからGameObject - > UI - > Canvasに移動してください。その後、パブリックCanvasを使用してそのCanvasを保持し、それをテキストの親として使用することができます。スクリプトからCanvasを作成する場合は、[this](https://stackoverflow.com/a/43844000/3785314)の回答から 'createCanvas'関数を使用してください。親キャンバスを返すので、返されたGameObjectを 'Text'の親として使うことができます。 – Programmer