首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >unity从脚本直接绘制到画布

unity从脚本直接绘制到画布
EN

Stack Overflow用户
提问于 2016-09-19 20:11:31
回答 1查看 3.7K关注 0票数 0

在Unity3D中,我想在world Space中绘制一个图形用户界面。需要的是UI不是静态的。它必须从脚本中创建。

但我想不出该怎么做。调用GUI: box ()只是将框添加到屏幕UI。

编辑:

我做了一些研究,发现GUI元素使用的是画布渲染器和脚本。

添加画布渲染器不是问题

代码语言:javascript
复制
GameObject o = new GameObject(child.OriginalName);
o.AddComponent<CanvasRenderer>();

但是我不能添加脚本。

我还尝试使用GUIText组件。

代码语言:javascript
复制
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;

但这完全没有显示任何内容

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-22 15:39:35

好了,我把这个弄好了,这里不需要船长。

包括以下内容

代码语言:javascript
复制
using UnityEngine.UI;

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

代码语言:javascript
复制
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的父级,它就可以正常工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39572870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档