【发布时间】:2019-06-23 20:41:48
【问题描述】:
我想从整个屏幕向左和向右移动角色,如果我从任何地方向左或向右移动,它只需要移动我现在拥有的数量 = 1.5f
我有这个代码并且工作完美,但它只适用于鼠标而不是触摸屏:
if (!isMoving && Input.GetMouseButtonDown(0))
{
desiredPos = transform.position + Vector3.right * 1.52f;
isMoving = true;
}
if (!isMoving && Input.GetMouseButtonDown(1))
{
desiredPos = transform.position - Vector3.right * 1.52f;
isMoving = true;
}
if (isMoving)
{
transform.position = Vector3.MoveTowards(transform.position, desiredPos, moveSpeed * Time.deltaTime);
// this == is true if the difference between both
// vectors is smaller than 0.00001
if (transform.position == desiredPos)
{
isMoving = false;
// So in order to eliminate any remaining difference
// make sure to set it to the correct target position
transform.position = desiredPos;
}
}
我试图实现这段代码,但它不起作用
private void Update()
{
timer += Time.deltaTime;
int i = 0;
//loop over every touch found
while (i < Input.touchCount)
{
if (!isMoving && Input.GetTouch(i).position.x > ScreenWidth / 2)
{
//move right
desiredPos = transform.position + Vector3.right * 1.52f;
isMoving = true;
}
if (!isMoving && Input.GetTouch(i).position.x < ScreenWidth / 2)
{
//move left
desiredPos = transform.position - Vector3.right * 1.52f;
isMoving = true;
}
++i;
}
if (isMoving)
{
transform.position = Vector3.MoveTowards(transform.position, desiredPos, moveSpeed * Time.deltaTime);
// this == is true if the difference between both
// vectors is smaller than 0.00001
if (transform.position == desiredPos)
{
isMoving = false;
// So in order to eliminate any remaining difference
// make sure to set it to the correct target position
transform.position = desiredPos;
}
}
}
第二个代码将字符向左或向右移动太多,我需要像在第一个代码中一样移动,但触摸向左或向右滑动。
我想要这样的东西精确移动 1.5f
【问题讨论】: