2015-10-16 274 views
0

我基本上有這樣的代碼。當我嘗試使用OnMouseUp()函數時,unity3d中出現性能錯誤。我不知道如何使用Android的Touch functionsUnity3D中OnMouseUp()的等效

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; 
} 

回答

0

將不得不使用觸摸事件,有完整的例子在這裏: http://docs.unity3d.com/ScriptReference/Touch-phase.html

「TouchPhase.Ended」將等於OnMouseUp,但我不認爲幾個OnMouseUp的會做任何明顯放緩到您的遊戲(如果使用大部分時間並優化它們,你可以與分析器一起檢查)。

此外,您將不得不執行光線投射來檢查哪個物體被觸摸位置擊中。

+0

說實話,我不明白這個例子說了什麼。另外如何使用touchPhase.ended作爲一個函數? –

2

嘗試這樣的事情。它應該也適用於android。

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

或者你可以使用Input.GetTouch(),然後檢查,而不是GetMouseButtonUp TouchPhase,()。並支持多路訪問這種方式。

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

謝謝,我會試試這個 –