等价于 Unity3D 中的 OnMouseUp()

Equivalent of OnMouseUp() in Unity3D

我基本上有这个代码。当我尝试使用 OnMouseUp() 函数时,我在 unity3d 中遇到了性能错误。我不知道如何将 Touch functions 用于 android。

void OnMouseUp()
{
    DetectCollider.IfInMain = false;
    DetectCollider.Score = 0.00f;
    MainMenux.SetActive(false);
    Mech.transform.rotation = Quaternion.Euler(270, 180, 0);
    DetectCollider.Speed = 100;
    ScoreCountTurn = true;
}

必须使用 Touch 事件,这里有完整的示例: http://docs.unity3d.com/ScriptReference/Touch-phase.html

"TouchPhase.Ended" 等同于 OnMouseUp,但我认为很少有 OnMouseUp 会显着降低您的游戏速度(您可以使用分析器检查大部分时间是否使用并优化它们)。

然后您还必须实施光线投射来检查哪个对象被触摸位置击中。

尝试这样的事情。它也应该适用于 android。

  void Update() {
    if (Input.GetMouseButtonUp(0)) 
    {
        DoStuff();
    }
  }

或者您可以使用Input.GetTouch(),然后检查TouchPhase,而不是GetMouseButtonUp()。并支持多点触控。

  void Update() {
    if (Input.GetTouch(0).phase == TouchPhase.ended) 
    {
        DoStuff();
    }
  }