Unity3D隐藏启动logo
Unity3D隐藏启动logo
- 专业版带启动logo去除的方法
- 个人版带启动logo隐藏的方法
- 与透明背景冲突问题
Unity默认开启logo显示,专业版的可以勾选去掉,但个人版的无法去掉勾选,当然也可以下载破解版的软件,省去了很多麻烦。本文以Android平台为例,其他平台也可参考此做法。
专业版带启动logo去除的方法
进入 BuildSettings -> 左下角的Player Settings -> Player -> 选择平台 -> Android-Settings for Android下有个Splash Screen去掉勾勾就行。个人版这个勾勾是无法去掉的,只有正版或者破解版的可以去掉。
个人版带启动logo隐藏的方法
这里说的是隐藏,也可以称为覆盖,并不是去掉。实际上的做法是在Android平台端的UnityPlayer
界面上添加一个View
来覆盖启动logo。Unity端通知Android端3D模型启动的状态,实际上就是Unity调用Android的方法来覆盖启动logo。
首先编写C#脚本,将脚本与模型绑定。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AndroidCaller : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){OnStart();}void OnStart(){if(Application.platform != RuntimePlatform.Android) return;AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");jo.Call("onUnityObjectStart")}
}
android工程中需要定义一个onUnityObjectStart方法与C#脚本中定义一致。
public void onUnityObjectStart() {Log.d(TAG, "onUnityObjectStart");runOnUiThread(new Runnable() {@Overridepublic void run() {mUnityPlayer.removeView(mIvMask);}});}
运行后的效果如下:
与透明背景冲突问题
如果Activity的主题设置为UnityThemeSelector.Translucent
UnityThemeSelector.Translucent
主题设置了windowIsTranslucent
属性为true。
<item name="android:windowIsTranslucent">true</item>
UnityPlayer
源码中,如果设置了windowIsTranslucent
为true则会SurfaceView.setZOrderOnTop(true)
将SurfaceView置于顶部最上层,从而导致其他的View无法覆盖SurfaceView。
SurfaceView var1;(var1 = new SurfaceView(this.mContext)).setId(this.mContext.getResources().getIdentifier("unitySurfaceView", "id", this.mContext.getPackageName()));if (this.IsWindowTranslucent()) {var1.getHolder().setFormat(-3);var1.setZOrderOnTop(true);} else {var1.getHolder().setFormat(-1);}
因此设置透明背景时需要注意此问题,有什么解决方案呢?
解决方案如下
在onCreate
方法中UnityPlayer
创建后,通过findViewById
找到对应的SurfaceView
,将SurfaceView.setZOrderOnTop()
方法改为不会遮挡UI控件的SurfaceView.setZOrderMediaOverlay()
方法。
int resId = getResources().getIdentifier("unitySurfaceView", "id", getPackageName());SurfaceView surfaceView = findViewById(resId);if (surfaceView != null) {surfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);surfaceView.setZOrderMediaOverlay(true);}
当然也可以反编译修改unity-classes.jar
的代码。
以上为Unity3D在Android中隐藏启动logo的方式以及与透明背景冲突的解决方案,创作不易,各位老铁点个赞。
Unity3D隐藏启动logo相关推荐
- Unity替换启动Logo动画
前言 最近的项目中,由于Android中集成了Unity场景,每次进入打包好的Unity项目时都会出现Unity的标志性动画,让用户处于等待状态,体验感比较差:于是便在产品经理的要求下将Unity的启 ...
- 修改Ubuntu的启动logo
修改Ubuntu的启动logo 原文链接: https://my.oschina.net/jmjoy/blog/380262 内容: Plymouth splash screen is the ini ...
- linux开机自动打开全屏,如何修改Linux开机启动logo并使其全屏显示?
1.制作开机启动logo的图片(my_image.png ==> logo_linux_clut224.ppm),要求图片的分辨率要和屏幕大小一致. 使用如下命令: pngtopnm my_ ...
- 用MFC制作程序启动logo
完了,这次土鳖了,介绍个非常过时的东西,其实就是自己收藏一下,怕以后想用的时候自己忘了. 直接进入正题,首先用ps等工具做一个自己喜欢的程序启动的logo位图,我这里制作的logo大小为500*313 ...
- 玩转mini2440开发板之【制作和修改linux启动logo图片】
今天玩一玩linux启动logo图片的修改和制作. 对于我手头的mini2440开发板,其实厂家友善之臂原本是有配一个转换工具的,用起来会比较简单.但是,它那个工具仅针对32位的Fedora 9系统开 ...
- 制作.ppm格式Linux内核启动logo
在做的产品中,采用默认的小企鹅做logo肯定是不行的,所以一定要替换个像样的企业logo图片! 以前做过Linux启动Logo,时间太久,给忘了,所以再从新研究下. 经过在网上的搜索,和实际验证,制作 ...
- 修改Linux内核的启动Logo和禁用启动光标
Linux内核下使用的图片文件类型是pnm和PPm格式的,所以在开始介绍修改linux内核启动LOGO之前, 1,先需要介绍一下怎么样设计自己开始logo的ppm图片,首先选择一张png格式的图片 使 ...
- 修改内核的启动logo
以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 见博客http://blog.csdn.net/ultraman_hs/article/details/5498816 ...
- 苹果笔记本有uefi启动吗_如何更换Windows 10的启动logo
我们日复一日看着Windows 10单调的启动画面都快看吐了. 如何你是UEFI安装的Windows 10,有时画面更加惨不忍睹: 黑乎乎的背景下,一个厂商的logo孤零零的挂在上方,像是一轮残月:下 ...
- V853 替换开机启动LOGO
概述 主要描述了 V853 如何替换开机启动LOGO 环境 软件:V853 Tina 5.0 SDK 硬件:全志V853开发板 具体步骤 首先我们看一下未替换的启动log界面如下: 需要准备一张大小合 ...
最新文章
- 90%的开发都不太考虑这个,但只要出问题直接公司完蛋!
- spring+cxf
- ubuntu下面的robo3t 使用笔记
- java ee cdi_Java EE CDI程序化依赖关系消歧示例–注入点检查
- onvif发送订阅规则
- 学习了时间和测试题目
- BootstrapTable入门Demo
- 一个农民父亲令人震撼的力量
- java parseint(12.0),Java中parseInt()和valueOf(),toString()的区别
- fatal error: cuda_runtime.h: No such file or directory
- leetcode string
- WINDOWS上OpenCV需要有MediaPlayer才能正确运行?
- rost反剽窃检测系统_剽窃上瘾了?该戒戒了
- uni-app自定义配置安卓模拟器 - MuMu模拟器
- 图扑软件 3D 组态编辑器,低代码零代码构建数字孪生工厂
- 编写LLVM Pass模块知识点梳理
- PAT甲级 1087 条条大路通罗马
- android11最新版本是多少,Android11正式发布 安卓11正式版系统发布更新时间
- 三、存储系统(三)主存储器
- 当你用STMS传输请求时,那些选项都是啥意思