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

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

		}




Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐