如何在播放器从按钮边界内释放时如何激活按钮?

时间:2014-07-15 00:19:53

标签: c# unity3d touch

我希望我的按钮仅在玩家从按钮边界内释放时才能工作。如果玩家滑过他/她的手指并退出按钮的边界,我不希望它做任何事情。这适用于基于触摸的界面。

我可以添加以下代码以使其正常工作:

void OnMouseUp(){

            Application.LoadLevel ("MoonWalker");

    }

1 个答案:

答案 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
         }
      }
   }
}