0

I basically have this code. I got performance errors in unity3d when I tried to use OnMouseUp() function. I have no idea how to use Touch functions for 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;
}
4

2 回答 2

2

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

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

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

  void Update() {
    if (Input.GetTouch(0).phase == TouchPhase.ended) 
    {
        DoStuff();
    }
  }
于 2015-10-16T21:29:01.990 回答
0

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

“TouchPhase.Ended”将等于 OnMouseUp,但我认为很少有 OnMouseUp 会对您的游戏造成任何明显的减速(您可以使用探查器检查如果大部分时间使用并优化它们)。

此外,您还必须实施光线投射以检查哪个对象被触摸位置击中。

于 2015-10-16T18:48:25.053 回答