一个步骤跳过 Unity 启动Logo | 多平台适用 | 官方API支持

本文介绍如何通过Unity的官方API在多平台上简单快速地跳过启动Logo界面,只需一个脚本,适用于Unity2019.4及以上版本。核心API包括RuntimeInitializeOnLoadMethodAttribute和SplashScreen,但可能在大型项目中出现Logo闪现或长时间黑屏,建议结合自定义启动画面使用。
摘要由CSDN通过智能技术生成

请添加图片描述

在这里插入图片描述


前言

  • 众所周知,使用Unity引擎打包的工程在启动时都带有Unity的默认启动Logo。
  • 这个问题可以通过购买Unity专业版以及零元购解决,但是对于多数人来说一般不会使用这种方法。
  • 之前已经写过一篇文章使用aar的方式从安卓端去掉Unity的启动Logo:【Unity终极奥义】Unity打包去掉启动画面Logo,无需破解,一学就会
  • 那本篇文章就来使用一种更简单的方法来直接去掉启动Logo,只需要一个脚本即可完成。

【Unity实战篇 】 | 一个步骤跳过 Unity Logo 界面 | 多平台适用 | 官方API支持

请添加图片描述


使用方法

在Unity工程中创建一个脚本SkipSplash.cs,然后将该脚本放到除了Editor以外的文件夹就可以了,不需要挂载。

脚本代码如下:

#if !UNITY_EDITOR
using UnityEngine;
using UnityEngine.Rendering;

public class SkipSplash
{
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)]
    private static void BeforeSplashScreen()
    {
#if UNITY_WEBGL
        Application.focusChanged += Application_focusChanged;
#else
        System.Threading.Tasks.Task.Run(AsyncSkip);
#endif
    }

#if UNITY_WEBGL
    private static void Application_focusChanged(bool obj)
    {
        Application.focusChanged -= Application_focusChanged;
        SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate);
    }
#else
    private static void AsyncSkip()
    {
        SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate);
    }
#endif
}
#endif

核心 API

该脚本主要用到了两个API: RuntimeInitializeOnLoadMethodAttributeSplashScreen

1. RuntimeInitializeOnLoadMethodAttribute

在这里插入图片描述

RuntimeInitializeOnLoadMethodAttribute一般会配合RuntimeInitializeLoadType进行使用。

RuntimeInitializeLoadType 有以下类型:

类型介绍
AfterSceneLoad在场景加载后
BeforeSceneLoad在场景加载前
AfterAssembliesLoaded加载完所有程序集并初始化预加载资源时的回调
BeforeSplashScreen在显示启动画面之前
SubsystemRegistration用于子系统注册的回调

在之前写过的一篇小知识文章中用到过这个RuntimeInitializeOnLoadMethodAttribute:
【100个 Unity实用技能】 ☀️ | 脚本无需挂载到游戏对象上也可执行的方法

RuntimeInitializeOnLoadMethodAttribute 主要负责的是在显示启动画面之前调用这个静态方法,也就是执行跳过Logo方法的时间。

2. SplashScreen

在这里插入图片描述

SplashScreen 是负责跳过Logo的核心方法,与上面的RuntimeInitializeOnLoadMethodAttribute进行配合,在在显示启动画面之前停止 SplashScreen 渲染即可完成Unity启动Logo的去除!

SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate)

效果展示

请添加图片描述

请添加图片描述

可以看到非常简单的就实现了去掉Unity的启动Logo,只需要一个脚本放到工程中就好了,限制是需要 Unity2019.4 或更高版本。

实测了Unity2021、2020及2019.4版本发现都可以正常使用。

优点:
该方法非常简单方便,一个脚本可以实现多平台去掉启动Logo。

缺点:
当工程比较大时,此方法去除Logo的效果可能会很差,可能会出现Logo一闪而过或者卡出几帧Logo的画面。
还可能会出现长达4、5秒的黑屏时间,这是因为应用程序正在加载,即使我们停止了Logo,但是并不能影响这个加载的流程时间。
这个时候跳过启动Logo的意义就不大了,正确的方法应该是在此空挡时间换成自己的启动画面,这样就需要另外写方法进行操作了。


总结


  • 🎬 博客主页:https://xiaoy.blog.csdn.net

  • 🎥 本文由 呆呆敲代码的小Y 原创 🙉

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------

请添加图片描述请添加图片描述请添加图片描述

请添加图片描述

资料白嫖,技术互助

学习路线指引(点击解锁)知识定位人群定位
🧡 Unity系统学习专栏 🧡入门级本专栏从Unity入门开始学习,快速达到Unity的入门水平
💛 Unity实战类项目 💛进阶级计划制作Unity的 100个实战案例!助你进入Unity世界,争取做最全的Unity原创博客大全。
❤️ 游戏制作专栏 ❤️ 难度偏高分享学习一些Unity成品的游戏Demo和其他语言的小游戏!
💚 游戏爱好者万人社区💚 互助/吹水数万人游戏爱好者社区,聊天互助,白嫖奖品
💙 Unity100个实用技能💙 Unity查漏补缺针对一些Unity中经常用到的一些小知识和技能进行学习介绍,核心目的就是让我们能够快速学习Unity的知识以达到查漏补缺

在这里插入图片描述

  • 29
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆敲代码的小Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值