我希望我的按钮仅在玩家从按钮边界内释放时才能工作。如果玩家滑过他/她的手指并退出按钮的边界,我不希望它做任何事情。这适用于基于触摸的界面。
我可以添加以下代码以使其正常工作:
void OnMouseUp(){
Application.LoadLevel ("MoonWalker");
}
答案 0 :(得分:1)
首先,对于基于触摸的界面,您应该使用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
}
}
}
}