我正在为 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按钮。
抱歉问了这么多愚蠢的问题
谢谢:)
我不认为UI是制作游戏控制器的最佳选择 你可以使用Input.touches来知道你的手指在哪里以及屏幕上有多少根手指,并且你可以知道fingerId,这样你就可以跟踪同一个手指 https://docs.unity3d.com/ScriptReference/Input-touches.html 看看吧