Unity UI 按钮多点触控

问题描述 投票:0回答:1

我正在为 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-最后,我如何为boost按钮设置一个计时器,以便玩家每15秒只能按一次boost按钮。

抱歉问了这么多愚蠢的问题

谢谢:)

c# android unity-game-engine touch
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.