【发布时间】:2017-10-18 08:22:51
【问题描述】:
这是我尝试模拟滑动手势的代码,因此当我构建到移动设备时,我知道它会起作用。没有任何记录,我对为什么它似乎不起作用感到困惑。我希望它在控制台中打印出来,我要么刷了RTL(从右到左)或LTR(从左到右)。我看不出我做错了什么。
void Update()
{
if (Input.GetMouseButtonDown(0))
{
startPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
if (Input.GetMouseButtonUp(0))
{
endPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
if (startPosition != endPosition && startPosition != Vector3.zero && endPosition != Vector3.zero)
{
float deltaX = endPosition.x - startPosition.x;
float deltaY = endPosition.y - startPosition.y;
if ((deltaX > 5.0f || deltaX < -5.0f) && (deltaY >= -1.0f || deltaY <= 1.0f))
{
if (startPosition.x < endPosition.x)
{
print("LTR");
}
else
{
print("RTL");
}
}
startPosition = endPosition = Vector3.zero;
}
}
【问题讨论】:
-
你有太多的检查,特别是最后一个 (endPosition != zero ) 不可能是真的。改用标志 drag = true 和 drag = false