不应单击Unity3d按钮时单击该按钮

时间:2014-09-26 18:15:17

标签: unity3d unityscript

我正在做一个简单的2d乒乓球比赛。我现在完成了一切,我唯一的问题是当不应该记录GUI退出或重启按钮点击时。让我们说两个玩家的手指都在屏幕上并且他们移动它们,因此一个玩家手指距x轴上的按钮25个单位,其他玩家手指-25。这两个手指触摸以某种方式记录在屏幕中间的一个手指触摸我的退出按钮和应用程序关闭。我有2个播放器控件脚本,一个用于播放器1,另一个用于播放器2

var speed : float = 10;

        function Update () {

    if (Input.touchCount > 0) 
    {
        var touchDeltaPos:Vector2 = Input.GetTouch(0).position;
        if(Input.touchCount>1)
        var touchDeltaPos2:Vector2 = Input.GetTouch(1).position;
        if(touchDeltaPos.x<Screen.width/2)
        {
            if(touchDeltaPos.y > Screen.height/2)
            {
                rigidbody2D.velocity.y = 1*speed;
            }
            else rigidbody2D.velocity.y = -1*speed;
        }
        else if(touchDeltaPos2.x<Screen.width/2&&Input.touchCount>1)
        {
            if(touchDeltaPos2.y > Screen.height/2)
            {
                rigidbody2D.velocity.y = 1*speed;
            }
            else rigidbody2D.velocity.y = -1*speed;
        }
    }
    if (Input.touchCount == 0)
        rigidbody2D.velocity.y = 0;
    rigidbody2D.velocity.x=0;
}

1 个答案:

答案 0 :(得分:0)

我不知道你的按钮在哪里,但在任何情况下如何制作一个缓冲区,以免意外触及

width = Screen.width/2 - 100

或减100,无论哪个有效,缓冲区都应该考虑到手指的宽度和高度

修改 当我说缓冲区时,它意味着像变量一样的临时存储。所以对于你可以做的代码:

var buffer:int = 100;
(touchDeltaPos.x < Screen.width/2 - buffer)

现在为什么这样?好吧,缓冲区从退出按钮为玩家的游戏区域提供了更多空间。