【发布时间】:2016-09-11 17:00:40
【问题描述】:
我正在制作像乒乓球这样的游戏,除了用户控制两个桨并试图将球保持在界外。我正在使用触摸来控制两个桨。我分配触摸索引的方式是这样的:
public void checkTouchIndex() {
if (Input.touchCount <= 1)
{
touchPos = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);
if (touchPos.x < 0)
{
Debugger.il = "Touch Index = 0";
myTouch = Input.GetTouch(0);
}
}
if (Input.touchCount >= 1)
{
touchPos = Camera.main.ScreenToWorldPoint(Input.GetTouch(1).position);
if (touchPos.x < 0)
{
Debugger.il = "Touch Index = 1";
myTouch = Input.GetTouch(1);
}
}
else
Debugger.il = "Side not touched";
}
这里是移动实际桨的代码:
public void checkMovementTouch() {
if (Input.touchCount > 0)
{
//assigns touch index
checkTouchIndex();
touchPos = Camera.main.ScreenToWorldPoint(myTouch.position);
if (touchPos.x > 0)
{
//Begin Section: Touch left side
if (touchPos.y > 0)
{
//moves upwards
move(true);
}
else
{
//moves downwards
move(false);
}
//End of section
}
}
}
注意:Debugger 只是在屏幕上显示触摸哪一侧的文本以及触摸的 x 位置。但是我在更新时遇到了困难。您应该能够拖动手指并让桨跟随它,但经过一些测试,我注意到只有一个桨正确更新以跟随手指,并且始终是索引为 1 的桨。
例如,如果我触摸骑行侧,则将另一根手指放在左侧。我将能够正确地上下拖动我的左侧,但即使我上下移动它,右侧也会保持原位。
问题:我怎样才能让两个桨都完美更新。
【问题讨论】:
-
这个检查触摸索引代码是否在桨本身上?