一家之言
- OnGUI是unity的内置的,OnGUI用于代码创建UI,位置,UI的大小等,使用OnGUI创建UI,那么每一帧都会调用OnGUI,这样会较大的开销,相对于UGUI。
用OnGUI创建UI,那么UI只会在运行的时候可以看见,不运行的时候是看不见的。和OnGUI配合使用的GUI,GUI类是Unity具有手动定位的GUI的接口,GUI类也只能在OnGUI方法内使用类。
void OnGUI()
{
//Label:标签,非交互的,只提供展示,不可能单击或以其他方式移动
GUI.Label(new Rect(100, 100, 100, 100), "心平气和");//屏幕的左上角为(0,0)点,Rect(x,y,w,h)
// Debug.Log(Time.time);//这个测试在Console不停大打印了改变了的时间,证明了OnGUI会在每一帧被调用渲染。
if (GUI.Button(new Rect(0, 40, 40, 40), "按钮"))//点击的时候会返回true
{
Debug.Log("被点击了");
}
textArea = GUI.TextArea(new Rect(0, 80, 40, 40), textArea);//可换行的输入框,把他的结果作为参数,是为了实时现实输入的东西,第一次调用TextArea时,textArea的值是null
textFeild = GUI.TextField(new Rect(0, 120, 40, 40),textFeild);//单行输入
if(GUI.Toggle(new Rect(0, 160, 40, 40),trueToggle, "漩涡"))
{
Debug.Log("我被选择了");
}
hr = GUI.HorizontalSlider(new Rect(0, 200, 40, 40), hr, 0.0f,10.0f);
}
所以OnGUI老技术是非常麻烦的,于是有人开发出来NGUI插件,之后Unity自己又有了UGUI。因为我是新手,没用过NGUI这个插件,而unity自己有UGUI这么方便的可视化的操作UI,所以我觉得没必要学NGUI,一直用UGUI就可以了。
这是unity官网对于ONGUI的简绍和范例