我正在为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秒只能按一次升压按钮。
很抱歉提出这么多愚蠢的问题
谢谢:)
答案 0 :(得分:0)
我不认为UI是制作游戏控制器的最佳选择 你可以使用Input.touches知道你的手指在哪里以及你在屏幕上有多少手指,你就可以知道fingerId,这样你就可以跟踪同一个手指 https://docs.unity3d.com/ScriptReference/Input-touches.html 看看