我希望我的按钮只在玩家从按钮边界内释放时才工作。如果玩家滑动他/她的手指并离开按钮的边界,我不希望它做任何事情。这是一个基于触摸的界面。
我可以在下面的代码中添加什么来使它工作:
void OnMouseUp(){
Application.LoadLevel ("MoonWalker");
}
首先,对于基于触摸的界面,您应该使用TouchPhase代替。(我已经在我的评论中发布了链接)
要使按钮仅在触控释放在其边界内时才工作,您需要Raycast
检测触控释放位置是否在按钮内。如果是,那就做点什么,如果不是,那就什么都不做。
void Update(){
foreach(Touch touch in Input.touches) {
if(touch.phase == TouchPhase.Ended) {
Ray ray = Camera.main.ScreenPointToRay(touch.Position);
if (Physics.Raycast(ray, out hit)) {
if(hit.GameObject.name == "Button")
//do something
}
}
}
}