今天想把一段文字显示在屏幕上,最初的想法是在Unity编辑器中创建一个text控件,然后在程序中Update事件中改变它的位置,如下:
void Update()
{
textLevel.rectTransform.position = new Vector2(30, 30);
}
得到的结果图下图:
也就是说,左下角坐标为(0, 0),这也没什么可以说的,也符合正常坐标系的思维。
后来由于我想改字体大小和颜色,找到了更简单的方法,直接在OnGUI事件中调用GUI.Label,这样更方便,也不需要额外声明一个text对象。代码如下:
private void OnGUI()
{
string top_format = "
"; {0} GUI.Label(new Rect(50, 50, 200, 50), string.Format(top_format, string.Format("{0}级", Global.person.level.ToString())));
}
此时我意外地发现,OnGUI中的坐标系跟Update的坐标系竟然是不同的,如下图:
同样的起始点坐标,Update是第一象限,OnGUI则是第4象限。这个确实有点不大理解,猜测下来可能OnGUI与Update的显示走的架构不同,具体原因大家有了解的吗?
页面更新:2024-03-13
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号