unity3d里面用NGUI做界面的时候,移动scene界面里的物体,game界面的物体会发生卡屏,请问如何解决?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d里面用NGUI做界面的时候,移动scene界面里的物体,game界面的物体会发生卡屏,请问如何解决?相关的知识,希望对你有一定的参考价值。
如图所示
这个算是unity自己的一个bug有个方法可依解决:点击Game视窗的那个Free Aspect按钮,选择一个分辨率即可 参考技术A 可能是根据你的显卡配置问题 另一方面可能你的depth问题
NGUI制作摇杆
有些时候我们只是想做一个简单的摇杆,所以大可不必使用插件,几句代码就能搞定
首先你已经导入NGUI
在UI界面倒入背景精灵 然后添加触发器
然后在精灵 上添加子精灵
然后再精灵上挂载脚本
添加如下方法
OnPress(bool isPress)//NGUI回调
{
this.isPress=isPress;
}
- if(isPress)
- {
- Vector2 touch=UICamera.lastTouchPosition;//得到当前触摸位置 基于实际像素的
- if (UICamera.lastTouchPosition.x > Screen.width / 2) return;//如果你右边还有NGUI的按钮可用此方法不检测右侧的点击
- touch-=new Vector2(141,141);//得到实际触摸位置后需要减去偏移量 因为精灵2是精灵1的子对象 触摸位置为141时 精灵2刚好在精灵1中间
- float distance=Vector2.Distance(Vector2.zero,touch);//计算精灵2实际的位置
- if(distance>73)//因为按下的时候有可能手指滑动到任意区域,所以要限制精灵2的位置距离不超过精灵1的半径
- {
- touch=touch.normalized*73;//得到原点到触摸点的方向然后*73得到在在边缘的位置
- button.localPosition=touch;//修改精灵2的局部坐标位置
- }
- else //没超过直接设置位置
- {
- button.localPosition=touch;
- }
- int h=touch.x/73;//获取位置值
- int v=touch.y/73;
- }
以上是关于unity3d里面用NGUI做界面的时候,移动scene界面里的物体,game界面的物体会发生卡屏,请问如何解决?的主要内容,如果未能解决你的问题,请参考以下文章