Unity UI按钮mutlitouch

时间:2016-07-20 15:46:02

标签: c# android unity3d touch unityscript

我正在为Android设备构建一个乒乓球游戏。所以我插入一个带有三个按钮的画布。第一个按钮是向上移动玩家手柄,第二个按钮是向下移动玩家按钮。而第三个按钮是提高球的速度。

我正在使用指针向上和指针向下的三个按钮的事件触发器。

public float playspeed = 0.3f;
public Vector2 player1pos = new Vector2 ( 0 , 0 ) ;

bool paddlemoveup;
bool paddlemovedown;


void Update () 
{

if ( paddlemoveup == true)

{
         float ypos = gameObject.transform.position.y + Vector2.right.y * playspeed;

        player1pos = new Vector2 (-3.6f, Mathf.Clamp(ypos, -1.7f, 1.7f)) ;
        gameObject.transform.position = player1pos ;


}

if ( paddlemovedown == true )

{
         float ypos = gameObject.transform.position.y + Vector2.left.y * playspeed;
        player1pos = new Vector2 (-3.6f, Mathf.Clamp(ypos, -1.7f, 1.7f),) ;
        gameObject.transform.position = player1pos ;


}

}  

public void UPOnPointerDown ()

{

    paddlemoveup = true;

} 

public void UpOnPointerUp ()

{

    paddlemoveup = false;

}

public void DownOnPointerDown ()

{

    paddlemovedown = true;

} 

public void DownOnPointerUp ()

{

    paddlemovedown = false;

}

}

我正在使用播放器拨片的上一代码来上下移动。

对于提升按钮,我使用以下代码>>>

    void OnCollisionEnter2D (Collision2D col)

{

    if (col.gameObject.tag == "player1" && booster == true )
    {

       ballspeed = ballspeed + 0.5f;
       } public void Boostdown ()

{

    booster = true;

}

public void Boostup ()

{

    booster = false; 

}

    }

现在我的问题或疑问是:

1- UI按钮是我可以用于游戏的最佳方式,还是有更好的方法可以用于在触摸设备(Android和IOS)上使用此类游戏。

2-当我在Android设备上测试游戏时,我试图触摸升压按钮和(向右或向左按钮),但问题是我无法同时触摸两个按钮。那么我该如何解决这个问题呢?

3-关于球提升脚本,这是正确的做法还是有更好的方法,我怎样才能提高球速,比如说2秒,然后再回到前一个球速。

4 - 最后,我如何设置升压按钮的定时器,以便玩家每15秒只能按一次升压按钮。

很抱歉提出这么多愚蠢的问题

谢谢:)

1 个答案:

答案 0 :(得分:0)

我不认为UI是制作游戏控制器的最佳选择 你可以使用Input.touches知道你的手指在哪里以及你在屏幕上有多少手指,你就可以知道fingerId,这样你就可以跟踪同一个手指 https://docs.unity3d.com/ScriptReference/Input-touches.html 看看