2017-07-27 173 views
0

Stack-Overflow的第一篇文章,我真誠地道歉,如果有人已經問過這個問題,但我搜索了很多,並找不到任何人有類似的問題。Input.LocationService.isEnabledByUser在編輯器中用Unity Remote返回false?

所以我剛剛完成設置我的手機(三星Galaxy S8)使用Unity遠程5的工作,和我建立了我的位置服務的識別依據的一個位置:https://docs.unity3d.com/ScriptReference/LocationService.Start.html

我的問題是,腳本似乎無法通過!Input.location.isEnabledByUser if語句。

我使我的位置服務和高精確度的位置在我看到的是另一個線程中的問題。 Unity Remote 5正在正確顯示手機上的場景,但它似乎並沒有讀取位置數據?

有沒有人有這種解決方案? 我再次道歉,如果這是在別處回答,或者如果我失去了一些令人難以置信的微不足道的東西。

回答

0

你在你的答案是什麼並不完全正確。

的問題是代碼的這第一行:

if (!Input.location.isEnabledByUser) 
    yield break; 

當你在編輯器中單擊播放,團結需要幾秒鐘就可以連接到遠程統一。在這幾秒鐘之前,Input.location.isEnabledByUser將會執行falseyield break

有兩種可能的方法來解決這個問題:

。新增該行的代碼之前的延遲:

yield return new WaitForSeconds(3) 

if (!Input.location.isEnabledByUser) 
    yield break; 

.... 

。用EditorApplication.isRemoteConnected等待Editor連接繼續前進到Unity Remote。

您還必須將其包裝在Unity的Platform Dependent directive中,以便它可以編譯爲獨立構建,因爲此函數來自UnityEditor名稱空間。

#if UNITY_EDITOR 
//Wait until Unity connects to the Unity Remote 
while (UnityEditor.EditorApplication.isRemoteConnected) 
{ 
    yield return null; 
} 
#endif 

if (!Input.location.isEnabledByUser) 
    yield break; 

.... 
0

好了,有趣的是,我沒有在這裏看到的是,雖然統一遠程5使用的設備作爲屏幕,它實際上並沒有把你的設備作爲移動設備。

這看起來很愚蠢,但我想我可以用,有時做了充分的出口積累,當我需要測試特定的移動解決事情由xD