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;

}

 

  1. if(isPress)  
  1. {  
  2.        
  3.     Vector2 touch=UICamera.lastTouchPosition;//得到当前触摸位置  基于实际像素的  
  4.             
  5.                       if (UICamera.lastTouchPosition.x > Screen.width / 2) return;//如果你右边还有NGUI的按钮可用此方法不检测右侧的点击  
  6. touch-=new Vector2(141,141);//得到实际触摸位置后需要减去偏移量 因为精灵2是精灵1的子对象 触摸位置为141时 精灵2刚好在精灵1中间  
  7.     float distance=Vector2.Distance(Vector2.zero,touch);//计算精灵2实际的位置  
  8.     if(distance>73)//因为按下的时候有可能手指滑动到任意区域,所以要限制精灵2的位置距离不超过精灵1的半径  
  9.     {  
  10.         touch=touch.normalized*73;//得到原点到触摸点的方向然后*73得到在在边缘的位置  
  11.         button.localPosition=touch;//修改精灵2的局部坐标位置  
  12.   
  13.     }  
  14.     else //没超过直接设置位置  
  15.     {  
  16.         button.localPosition=touch;  
  17.     }  
  1.                      
  2.       int h=touch.x/73;//获取位置值  
  3.       int v=touch.y/73;  
  4.   
  5. }  

以上是关于unity3d里面用NGUI做界面的时候,移动scene界面里的物体,game界面的物体会发生卡屏,请问如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

谁能帮我用NGUI做个简单的UNITY3D的界面,就是最普通的那种有登陆界面,确认返回,以及切换的3个界面。

Unity3D移动端内存优化(NGUI方面)

Unity3D学习:利用NGUI实现一个简单的左右摇杆

unity3d 背包怎么做

Unity3D中,NGUI界面突然变灰是怎么回事

Unity3d通用工具类之NGUI图集分解