获取错误:无法隐式转换类型`UnityEngine.Touch' to bool'

时间:2015-08-17 13:29:52

标签: c# unity3d

每当我运行此代码时,我都会收到此错误:

  

错误CS0029:无法隐式转换类型UnityEngine.Touch'至   布尔'

这是什么问题?我试图在手指触摸屏幕时向上移动gameObject

private Rigidbody rb;

void Start() {

rb = GetComponent<Rigidbody>();

 }

 void Update () {

     if(Input.GetTouch()) {


         transform.position += Vector3.up;
     }

  }
}

3 个答案:

答案 0 :(得分:2)

Input.GetTouch返回什么?

  

返回表示特定触摸状态的对象。

你在这做什么?

if(Input.GetTouch())

不使用布尔表达式或布尔变量,而是使用对象!这无法编译。在if语句中,你必须使用条件或布尔变量。

  

我们如何识别用户是否有任何接触?

if(Input.touchCount > 0)
{
}

答案 1 :(得分:2)

因为这个条件:

if(Input.GetTouch())

不会返回boolean类型。它返回touch。要检查您是否接触过,您应该像这样使用它:

void Update () 
{
   if(Input.touchCount > 0) {
     transform.position += Vector3.up;
   }
}

如果您想了解有关触摸检测的更多信息,请查看this统一手册。

答案 2 :(得分:1)

根据Unity API,public static Touch GetTouch(int index);会返回Touch,而不是bool