C# 如何通过触摸左右移动?
我想从整个屏幕向左和向右移动角色,如果我从任何地方向左或向右移动,它只需要移动我现在拥有的量=1.5f 我有此代码,工作非常完美,但它仅适用于鼠标,不适用于触摸屏:C# 如何通过触摸左右移动?,c#,unity3d,C#,Unity3d,我想从整个屏幕向左和向右移动角色,如果我从任何地方向左或向右移动,它只需要移动我现在拥有的量=1.5f 我有此代码,工作非常完美,但它仅适用于鼠标,不适用于触摸屏: if (!isMoving && Input.GetMouseButtonDown(0)) { desiredPos = transform.position + Vector3.right * 1.52f; isMoving = true; } if (!isMoving && I
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;
}
}
}
private void Update()
{
timer+=Time.deltaTime;
int i=0;
//在找到的每一个触摸上循环
而(iScreenWidth/2)
{
//右移
desiredPos=transform.position+Vector3.right*1.52f;
isMoving=真;
}
if(!isMoving&&Input.GetTouch(i.position.x
第二个代码将字符向左或向右移动太多,我需要像第一个代码一样移动字符,但要使用触摸向左或向右滑动
我想要像这样的东西精确移动1.5华氏度
要与
GetMouseButtonDown
的行为相同,还需要检查触摸短语:
Input.GetTouch(i).phrase == TouchPhase.Began
如何在我的第一个代码中实现这一点请在我的示例中帮助我由于OP是
Touch
输入的新手,在检查任何给定触摸的状态之前添加关于检查触摸的注释可能会很有帮助。