首页 > 其他分享 >Unity跳过闪屏页

Unity跳过闪屏页

时间:2024-08-22 12:25:59浏览次数:10  
标签:BeforeSplashScreen focusChanged Stop Application Unity 屏页 跳过 SplashScreen

github上一段代码,跳过Unity Logo启动屏:
github链接: https://github.com/psygames/UnitySkipSplash/blob/main/SkipSplash.cs

Unity API文档,Unity暴露了SplashScreen.Stop() 停止启动屏的API

只需要写个静态方法,使用[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)]即在在显示启动画面之前调用这个静态方法,在静态方法中调用SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate)来立即停止启动屏。

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

使用方法:

  1. 将下面脚本文件直接作为Runtime代码放到项目里(注意,不是Editor代码,是运行时代码)
  2. 打包->运行。非常好用,无需破解,官方支持,全平台适用。
#if !UNITY_EDITOR
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Scripting;
 
[Preserve]
public class SkipUnityLogo
{
    [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

原链接: https://blog.csdn.net/qq_37619255/article/details/128712294

标签:BeforeSplashScreen,focusChanged,Stop,Application,Unity,屏页,跳过,SplashScreen
From: https://www.cnblogs.com/su-make/p/18373600

相关文章

  • Android 10.0 锁屏页面忘记锁屏密码情况下点击5次解锁图标弹出锁屏密码功能实现
    1.前言在10.0的系统ROM定制化开发中,在一些产品中带锁屏密码的功能中,系统默认是滑动解锁,但是客户会设置锁屏密码,在某些时候会忘掉锁屏密码,导致需要进入恢复出厂设置然后才能进入系统桌面,这样就导致系统的保存的资料都丢失了,所以需要要求在锁屏密码页面在忘记解锁密码的情况下......
  • 《黑神话:悟空》神话再现,虚幻引擎与Unity/C#谁更强?
    前言在国产游戏领域,《黑神话:悟空》无疑是一颗耀眼的明星,以独特的艺术风格、深厚的文化底蕴以及卓越的技术表现,赢得了国内外玩家的广泛关注。然而,在这款游戏光鲜亮丽的背后,是我们开发者对技术选择的深思熟虑与探索。今天我们就来揭秘《黑神话:悟空》幕后的技术对决—虚幻引擎与Uni......
  • TA实践分享:材质与渲染——植物与风(Unity+UE)
    【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!一、美术分析下面是风格化和写实两种风格的草地效果,看上去是两种不搭边的美术表现形式,但拆解其背后的美术特征和实现原理二者在我们的眼中应该是一......
  • C# x Unity面向对象补全计划 设计模式 之 实现一个简单的有限状态机
    一个简单的有限状态机可以有如下内容1.状态基类(定义基本状态的方法,如进入(Enter)、执行(Execute)和退出(Exit),同时可以在此声明需要被管理的对象)2.具体状态类(定义具体状态,如:跳跃,行走,待机,每个具体状态类继承自状态基类)3.管理状态类(负责管理状态的切换逻辑,确保在不同状态之间进行......
  • Unity的UI设计
    目录创建和布局布局与交互性能优化最佳实践学习资源UnityUIToolkit与uGUI和IMGUI之间的具体区别和适用场景是什么?UnityUIToolkituGUIIMGUI如何在Unity中实现响应式UI设计以适应不同设备尺寸?UnityUI性能优化的最新技术和方法有哪些?在Unity中封装UI组件的最佳实......
  • Unity 麦扣 x 勇士传说 全解析 之 有限状态机(附各模块知识的链接,零基础也包学会的牢弟
            在编码前我一直有个疑问,为什么不是将方法写在一个一个类中,或者用的单例模式写个管理器来继承的方式来做怪物脚本,玩家控制和玩家动画控制的代码混在一起不说,与其他脚本之间的交互,让过于冗杂的代码不易阅读        这节开始应用的有限状态机,似乎一定......
  • Unity 麦扣 x 勇士传说 全解析 之 怪物基类(2)(附各模块知识的链接,零基础也包学会的牢弟)(
    1.怪物的动画逻辑一览2.怪物的受伤死亡逻辑一览usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Xml;usingUnityEngine;publicclassMonster:MonoBehaviour{[Header("速度")]publicfloatnormalSpeed;publicfloatchas......
  • Unity 中 Color 与 Color32 的区别
    1.存储方式Color用四个浮点数(float)来表示RGBA,取值范围均是0到1举例:varorange=newColor(1f,0.5f,0f,1f);而Color32使用四个字节(byte)表示RGBA,取值范围是0到255举例:varorange=newColor32(255,128,0,255);2.区别由存储方式可以看出,Color32采用字节存储,占......
  • unity中的问题记录(角色的控制)
    unity中的默认访问修饰符与c#相同,class不写public,则默认同一程序集(internal)中可以访问,在unity中,程序集表现为项目,即同一项目可以互相访问类里的成员默认与c#同样相同,都是private在C#中,将字段和方法都设为私有(private)并使用static修饰符并不是“多此一举”,而是根据具体的设......
  • Unity 常用的生命周期函数
    publicclassMonoLife:MonoBehaviour{  privatevoidAwake()  {    print("Awake:只要物体显示状态为true则调用一次");  }  privatevoidOnEnable()  {    print("OnEnable:每一次物体启用时调用");  }  private......