先说一下好处和原理:
如果用unity自带的GUI处理,需要在OnGUI() 中每个循环调用GUI.BeginGroup、 GUI.DrawTexture、TextFilter.DrawOutline 之类的代码,有很高的内存开销。
NGUI 不只是仅仅用于拼接UI,这里主要是去掉NGUI上的UICamera,使用MainCamera控制显示。此时的NGUI需要绑定在角色身上,如图:
角色里面创建一个object,设置Y轴坐标,通常角色头顶高一点。这样就绑定完毕。
这个是NGUI 编辑的截图:
- 在LateUpdate中调用
-
- //mWorldPosition 绑定角色的那个object
- //mCachedTrans nugi的object
- Vector3 screenPos = Camera.main.WorldToScreenPoint(mWorldPosition);
- Vector3 uiWorldPos = mUICamera.ScreenToWorldPoint(screenPos);
-
- mCachedTrans.position = uiWorldPos;
-
- mCachedTrans.rotation = mUICamera.transform.rotation;
最后看效果:
|