首页 > 技术文章 > NGUI制作摇杆

daluo 2016-08-28 19:14 原文

有些时候我们只是想做一个简单的摇杆,所以大可不必使用插件,几句代码就能搞定

首先你已经导入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. }  

推荐阅读