デバイスが電話/タブレットかテレビかに基づいて、コードからスクリーンモードを設定できます。
最初のステップは、このアプリがテレビや携帯端末で動作しているかどうかを確認することです。Androidでこれを行うための公式のAPIはありませんが、this投稿はAndroidJavaClass
でプラグインとして行う方法を説明しています。
bool isAndroidTv()
{
#if !UNITY_ANDROID || UNITY_EDITOR
return false;
#else
AndroidJavaClass unityPlayerJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject androidActivity = unityPlayerJavaClass.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass contextJavaClass = new AndroidJavaClass("android.content.Context");
AndroidJavaObject modeServiceConst = contextJavaClass.GetStatic<AndroidJavaObject>("UI_MODE_SERVICE");
AndroidJavaObject uiModeManager = androidActivity.Call<AndroidJavaObject>("getSystemService", modeServiceConst);
int currentModeType = uiModeManager.Call<int>("getCurrentModeType");
AndroidJavaClass configurationAndroidClass = new AndroidJavaClass("android.content.res.Configuration");
int modeTypeTelevisionConst = configurationAndroidClass.GetStatic<int>("UI_MODE_TYPE_TELEVISION");
return (modeTypeTelevisionConst == currentModeType);
#endif
}
次にあなたがAwake
機能で、Screen.orientation
で画面の向きを変更することができます。
void Awake()
{
bool androidTv = isAndroidTv();
Screen.autorotateToLandscapeLeft = androidTv;
Screen.autorotateToLandscapeRight = false;
Screen.autorotateToPortrait = !androidTv;
Screen.autorotateToPortraitUpsideDown = false;
if (androidTv)
{
Screen.orientation = ScreenOrientation.LandscapeLeft;
}
else
{
Screen.orientation = ScreenOrientation.Portrait;
}
}
あなたはスクリプトを早期に実行するように設定されている「ゲームコントローラ」オブジェクトでこれを使用することができますが注文の設定。
また、デフォルトの方向を[自動回転]に設定するようにAndroidプレーヤー設定を設定することもできます。
これで、プレーヤーの設定で[デフォルトの方向]を[自動]に設定する必要がありますか?もしそうなら、ユーザーは自分の電話機を回転させると、電話機は向きを変えるでしょうか? – Yuyo
** "これは、プレーヤーの設定で"デフォルト方向 "を自動に設定する必要がありますか?**私はそれについてはわかりません。あなたはAndroidデバイスですぐにそれをテストして何が起こるかを見ることができます。 **もしそうなら、ユーザーが携帯電話を回転させたときに電話機が向きを変えるのだろうか?**再び、ユーザーが自分の電話機を回転させたときにそれが変化するかどうかを調べる必要があります。その場合は、私の解決策[ここ](http://stackoverflow.com/a/38790423/3785314)を使用して問題を解決することができます。方向を設定した後にその関数を呼び出すだけです。 – Programmer
パーフェクト、これは動作しているようです。ありがとう! – Yuyo