2017-07-26 47 views
0

我在團結共初學者和創建時被檢測到觸摸這樣簡單地設置一個文本元素的文本功能:Input.Touch不工作的OSX

// Update is called once per frame 
void Update() { 
    if (didTap()) { 
     print ("did tap!"); 
     tapText.text = "TAP!"; 
    } 
} 

private bool didTap() { 
    print ("checking didtap"); 
    if (Input.touchCount > 0) { 
     Touch initialTouch = Input.GetTouch (0); 
     return initialTouch.phase == TouchPhase.Began; 
    } 

    return false; 
} 

當我運行這個在實際的設備上(Android手機)它可以很好地工作,但是當我在運行遊戲時在統一編輯器中單擊'沒有任何反應。我正在運行OSX 10.12.2。我需要配置什麼來讓鼠標模仿觸摸事件?

回答

1

您可以使用UnityRemote應用程序將Unity的播放模式窗口複製到您的移動設備上。這將允許您與手機的功能進行交互,同時仍在計算機上運行Unity。

UnityRemote需要Unity中的一些設置以及下載應用程序。請考慮觀看此視頻:Unity Remote Setup Tutorial

或者,請參閱Hellium在this question中的答案,結合獲取鼠標點擊,僅編譯基於所用設備的代碼。

+0

但是遊戲是專門針對移動設備的。我只想檢測觸摸,但能夠在統一編輯器中觸發該觸摸。那可能嗎?或者這是否同時檢查? –

+0

在這種情況下,您可以在手機上使用[UnityRemote](https://docs.unity3d.com/Manual/UnityRemote5.html)應用程序,該應用程序將設備連接至計算機,以便在手機上覆製播放模式。 – ryeMoss

+0

非常感謝!我會着眼於此!如果你編輯答案,我會接受它:) –

0

Unity中的「觸摸」輸入和「鼠標」輸入有個奇怪的區別。 Input.touchCount將始終在編輯器中運行時返回0,但Input.GetMouseButtonDown(0)適用於編輯器,適用於在移動版本上觸摸一次或多次觸摸的第一次觸摸。

你有兩個選擇來解決通過代碼這個問題(您的另一種選擇是the remote ryemoss mentioned):

  • 如果你只使用過一次觸摸,使用Input.GetMouseButtonDown(0)Input.GetMouseButtonUp(0)
  • 使用#if UNITY_IOS,#if UNITY_ANDROID#if UNITY_EDITOR標籤爲您的平臺編寫單獨的輸入讀取器,然後讓它們都調用相同的功能。