我有一个由C#编写的Unity3D开发的Android应用程序,我想在运行我的应用程序时隐藏底部栏。所以我四处搜索,发现我需要使用Java中的setSystemUiVisibility函数。这是我找到的代码:
using UnityEngine;
public class DisableSystemUI
{
static AndroidJavaObject activityInstance;
static AndroidJavaObject windowInstance;
static AndroidJavaObject viewInstance;
public delegate void RunPtr();
public static void Run()
{
if (viewInstance != null) {
viewInstance.Call("setSystemUiVisibility", 2);
}
}
static DisableSystemUI()
{
if (Application.platform != RuntimePlatform.Android)
return;
DisableNavUI();
}
static void DisableNavUI()
{
if (Application.platform != RuntimePlatform.Android)
return;
using (AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
activityInstance = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
windowInstance = activityInstance.Call<AndroidJavaObject>("getWindow");
viewInstance = windowInstance.Call<AndroidJavaObject>("getDecorView");
AndroidJavaRunnable RunThis;
RunThis = new AndroidJavaRunnable(new RunPtr(Run));
activityInstance.Call("runOnUiThread", RunThis);
}
}
}
我试图调用DisableSystemUI.Run();在我的主要场景中。我根植了我的设备,但是在我运行它之后应用程序退出了。不确定它有什么问题?谢谢你的帮助。
答案 0 :(得分:1)
如果你发布java代码会更好 我也有同样的问题
试试这个
viewInstance.Call(&#34; setSystemUiVisibility&#34;,&#34; SYSTEM_UI_FLAG_FULLSCREEN&#34;);
或者
viewInstance.Call(&#34; setSystemUiVisibility&#34;,&#34; SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN&#34;);
应该有用......