统一向右和向左滑动错误
unity swipe right and left bug
大家好,感谢您的帮助,我正在统一制作一款手机游戏,需要左右滑动才能移动(地铁跑酷风格)
现在代码运行正常,但是当我开始游戏时,玩家总是移动并从最左边的车道开始,而不是像我希望的那样留在中间(在他移动后你可以轻扫)
关于如何修复它的任何线索?
代码:
private float startpos;
private int pos;
public float[] positionsset;
public GameObject player;
private Vector3 velocityf = Vector3.zero;
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
startpos = Input.mousePosition.x;
}
/////////////////////////////////////////////////////
else if (Input.GetMouseButtonUp(0))
{
if (Input.mousePosition.x - startpos > 0 && pos < 2)
{
pos++;
}
else if (Input.mousePosition.x - startpos < 0 && pos > 0)
{
pos--;
}
}
player.transform.position = Vector3.SmoothDamp(player.transform.position, new Vector3(positionsset[pos], player.transform.position.y, player.transform.position.z), ref velocityf, 0.1f);
}
}
您没有将 pos
初始化为任何东西,因此它将被设置为默认值 0。由于 0 表示左侧车道,因此它将从左侧车道开始。只需将 int pos;
更改为 int pos = 1;
,它就会从中间车道开始。或者,您可以将 pos
设为 public 变量并在检查器中设置它的值,如果您想从另一条车道开始,这样可以更轻松地进行调整。
大家好,感谢您的帮助,我正在统一制作一款手机游戏,需要左右滑动才能移动(地铁跑酷风格) 现在代码运行正常,但是当我开始游戏时,玩家总是移动并从最左边的车道开始,而不是像我希望的那样留在中间(在他移动后你可以轻扫) 关于如何修复它的任何线索?
代码:
private float startpos;
private int pos;
public float[] positionsset;
public GameObject player;
private Vector3 velocityf = Vector3.zero;
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
startpos = Input.mousePosition.x;
}
/////////////////////////////////////////////////////
else if (Input.GetMouseButtonUp(0))
{
if (Input.mousePosition.x - startpos > 0 && pos < 2)
{
pos++;
}
else if (Input.mousePosition.x - startpos < 0 && pos > 0)
{
pos--;
}
}
player.transform.position = Vector3.SmoothDamp(player.transform.position, new Vector3(positionsset[pos], player.transform.position.y, player.transform.position.z), ref velocityf, 0.1f);
}
}
您没有将 pos
初始化为任何东西,因此它将被设置为默认值 0。由于 0 表示左侧车道,因此它将从左侧车道开始。只需将 int pos;
更改为 int pos = 1;
,它就会从中间车道开始。或者,您可以将 pos
设为 public 变量并在检查器中设置它的值,如果您想从另一条车道开始,这样可以更轻松地进行调整。