unity从Script直接绘制到Canvas

时间:2016-09-19 12:11:31

标签: user-interface canvas unity3d

在Unity3D中,我想在世界空间中绘制一个GUI。 它需要UI不是静态的。它必须从脚本创建。

但我无法弄清楚如何做到这一点。 调用GUI:Box()只是将框添加到屏幕UI。

编辑:

我做了一些研究并发现GUI元素正在使用Canvas渲染器和脚本。

添加Canvas渲染器

不是问题
GameObject o = new GameObject(child.OriginalName);
o.AddComponent<CanvasRenderer>();

但是我无法添加脚本。

我也尝试使用GUIText Component。

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 个答案:

答案 0 :(得分:0)

好的,我让这个工作,这里不需要船长。

包括此

using UnityEngine.UI;

然后你就可以访问UI组件了。 例如文本

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;

其中o是Gameobject。

将Canvas设置为GameObject的父级,它可以正常工作