gpt4 book ai didi

c# - 从 Unity3D 调用 Java 函数

转载 作者:行者123 更新时间:2023-11-30 03:33:35 25 4
gpt4 key购买 nike

我有一个由 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();在我的主要场景中。我对我的设备进行了 root,但应用程序在我运行后退出了。不确定它有什么问题?感谢您的帮助。

最佳答案

如果贴出java代码就更好理解了我也遇到了同样的问题

试试这个

viewInstance.Call("setSystemUiVisibility", "SYSTEM_UI_FLAG_FULLSCREEN");

或者这个

viewInstance.Call("setSystemUiVisibility", "SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN");

应该工作....

关于c# - 从 Unity3D 调用 Java 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com