在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;
但这显示没什么
答案 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的父级,它可以正常工作