Unity Android 显示导航栏和状态栏

本文介绍了一种在Unity中显示Android设备状态栏的方法,通过使用Unity反射和Android Java代码结合的方式,避免了修改XML和Activity的繁琐步骤。文中详细展示了如何通过调用Android API来清除状态栏的隐藏标志,并添加了监听器以防止状态栏自动隐藏。
部署运行你感兴趣的模型镜像

Unity显示导航栏比较麻烦,显示状态栏挺简单的,网上百度有很多方案。

主要实现方案是Github上的一个工程https://github.com/Over17/UnityShowAndroidStatusBar

这个工程有aar包,也可以直接使用,但是我比较反感就是修改xml启动Activity的方案的,所以想直接在Unity用反射实现。

他的安卓工程可以看看,只有三个函数。

 public void ShowStatusBar()
    {
        currentActivity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
        {
            AndroidJavaObject window = currentActivity.Call<AndroidJavaObject>("getWindow");
            
            window.Call("clearFlags", 1024);
            AndroidJavaObject decorView = window.Call<AndroidJavaObject>("getDecorView");
            int i = decorView.Call<int>("getSystemUiVisibility");
            decorView.Call("setSystemUiVisibility", i & ~GetFlag());
            window.Dispose();
            decorView.Dispose();
        }
        ));
    }

    private int GetFlag()
    {
        int m = 4096 | 256 | 1024 | 512 | 2 | 4;
        return m;
    }

这个是显示的代码,但是只这样写会有问题,就是显示之后会自动隐藏,所以还需要一个监听。

   private void AddListener(OnSystemUiVisibilityChangeListener OnSystemUicallback)
    {
        currentActivity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
        {
            AndroidJavaObject window = currentActivity.Call<AndroidJavaObject>("getWindow");
            AndroidJavaObject decorView = window.Call<AndroidJavaObject>("getDecorView");
            decorView.Call("setOnSystemUiVisibilityChangeListener", OnSystemUicallback);
        }
        ));
    }


public class OnSystemUiVisibilityChangeListener : AndroidJavaProxy
{
    public XFRecorder xf;
    public OnSystemUiVisibilityChangeListener(string packetname, XFRecorder xf) : base(packetname)
    {
        this.xf = xf;
    }

    private void onSystemUiVisibilityChange(int var1)
    {
        xf.ShowStatusBar();
    }
}

这是监听代码,在回调中调用显示代码

 

 

这样做有一个问题,就是启动的时候,导航栏会有一点闪烁感

您可能感兴趣的与本文相关的镜像

Wan2.2-T2V-A5B

Wan2.2-T2V-A5B

文生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值