这里主要实现的功能是:点击按钮,生成物体,当放开鼠标时,物体移动到固定位置(注明:采用的是NGUI插件)。
首先,要考虑到的是,按下鼠标、抬起鼠标两个事件的不同操作,所以采用的是UIEventTrigger,按下时为OnPress,抬起时为OnRelease。
给按钮添加事件监听(此处有多个按钮)(移除事件为Remove):
public void AddEvnetForButton(){
for (int i = 0; i < count; i++) {
//EventDelegate.Add (btns_Left [i].onClick, OnPressEvent);
EventDelegate pressEvent = new EventDelegate (OnPressEvent);
btns_Left [i].GetComponent<UIEventTrigger> ().onPress.Add(pressEvent);
EventDelegate releaseEvent = new EventDelegate (OnRelease);
btns_Left [i].GetComponent<UIEventTrigger> ().onRelease.Add(releaseEvent);
}
}
接下来写按下、抬起事件,其实就是生成一个预制体(obj = Instantiate (all_Parts)as GameObject;),此处要用到一个bool变量(比较懒没有去写委托),按下时为真,抬起时为假,在Update函数中判断其真假,为真时,物体跟随鼠标移动。
移动的代码,(此处+ new Vector3(0,0,600)是为了让其在屏幕深处,避免看不到):
if (isPress){
obj.transform.position = Camera.main.ScreenToWorldPoint (Input.mousePosition + new Vector3(0,0,600));
}
抬起事件中,将物体移到规定位置,并将bool值赋值为假。