2017-07-27 5 views
0

最初の投稿はスタックオーバーフローであり、誰かが既にこれを尋ねてきたことを心からお詫び申し上げますが、私は多くを検索して同様の問題を持つ人を見つけることができませんでした。Input.LocationService.isEnabledByUserがUnity Remoteをエディタでfalseに戻していますか?

だから私はちょうどユニティリモート5で動作するように自分の携帯電話(サムスンギャラクシーS8)の設定が終了し、私はここ1によれば、私の場所のサービス識別を設定:https://docs.unity3d.com/ScriptReference/LocationService.Start.html

私の問題は、そのスクリプトであります!Input.location.isEnabledByUser ifステートメントを過ぎているようには見えません。

私は自分の位置情報サービスを有効にし、高精度の位置情報がオンになっていますが、別のスレッドで問題が発生していました。 Unity Remote 5は自分の電話機にシーンを正しく表示していますが、位置情報を読み取っていないようです。

誰にでもこれに対する解決策はありますか? もう一度答えられた場合、または私が信じられないほど些細なものを紛失している場合は、お詫び申し上げます。

答えて

0

をXDこれは本当にばかなようだが、私は特定のモバイル物事をテストする必要があるとき、私は時々、完全な輸出ビルドをやって決済することができますね。

問題は、このコードの最初の行です:あなたはエディタで再生をクリックすると

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

、Unityはユニティリモートに接続するために数秒を必要とします。その数秒前にInput.location.isEnabledByUserfalseになり、yield breakが実行されます。

これを修正するには2つの方法があります。

.Addコード行前の遅延:

yield return new WaitForSeconds(3) 

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

.... 

.USE EditorApplication.isRemoteConnected接続するためのエディタを待つためには、移動する前に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

いいえ、私がここで気付かなかった楽しい事実は、Unity Remote 5があなたのデバイスを画面としてあなたのデバイスを使用している間に、あなたのデバイスを実際にはモバイルデバイスとして扱わないということです。

あなたはあなたの答えを持っていることは非常に適切ではありません