2016-05-12 42 views
0

我必須將我的pong遊戲從鍵盤使用轉換爲基於觸摸的機制。然而,我完全想要弄清楚Unity的觸摸機制。我已經通過互聯網進行搜索,每個人都以某種方式不斷解決這個問題,但仍然以失敗告終。從我收集到的一切來看,我認爲應該起作用。這是我的更新方法,所以它經常檢查這個。Touch在Unity中無法識別

Touch t; 

void Update() { 
    if (Input.touchCount > 0) { 
     print("touch seen"); 
     t = Input.GetTouch(0); 
    } 
} 

無論我觸摸屏幕多少次,if語句條件都不會被滿足。我正在使用具有觸摸屏的聯想筆記本電腦,也許它正在閱讀我的觸摸點擊?我似乎無法弄清楚。如果我拿走if語句,我會得到一個ArrayIndexOutOfBounds異常。任何幫助非常感謝!

更新它註冊爲鼠標點擊,我不能只是允許這個,因爲我需要多個觸摸輸入。

+0

給鼠標輸入版本快速嘗試應該回答你關於這個問題。 (我認爲電腦觸摸屏實際上將它當作鼠標點擊來處理。) –

+0

它確實註冊爲點擊,但是我該如何調試該程序? @GunnarB。 – Luke

回答

0

您可以使用Input.touchSupported來檢查您的計算機是否支持觸摸。如果返回true,則請與Input.GetTouch(0)聯繫。如果返回false,則使用Input.GetMouseButtonDown來代替鼠標。 如果您的電腦不支持觸摸屏,觸摸將無法使用。以下是如何做到這一點的完整代碼:

void Update() 
{ 
if (Input.touchSupported) 
{ 
    Debug.Log("TOUCH IS SUPPORTED"); 
    if ((Input.touchCount > 0) && (Input.GetTouch(0).phase == TouchPhase.Began)) 
    { 
     print("touched screen"); 
    } 
} 
else 
{ 
    Debug.Log("TOUCH IS NOT SUPPORTED"); 
    if (Input.GetMouseButtonDown(0)) 
    { 
     print("clicked screen"); 
    } 
} 
} 
+0

它說它不被支持,我怎麼讓它支持它,因爲我知道我的電腦有觸摸。我能夠輕鬆地在LibGdx中編程觸摸Java – Luke

+0

@Luke如果它不被支持,那麼它不會工作。什麼Leno型號和什麼Os版本? – Programmer

+0

聯想IdeaPad Flex 15,Windows 10 – Luke