赞
踩
Unity的启动界面令人很不爽,因为展示Unity徽标的时间过长,延迟了加载时间,而使用免费版本的人又担心会收到法律函件。
翻阅了Unity API文档后,我惊讶地发现Unity居然提供了SplashScreen.Stop()这个API,该API允许用户停止启动屏幕的显示。这意味着免费版用户也可以跳过Unity Logo,这真是一项令人感到惊喜的特权。Unity竟然如此慷慨地为免费用户提供了这个接口。
只需要写个静态方法,使用[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)]即在在显示启动画面之前调用这个静态方法,在静态方法中调用SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate)来立即停止启动屏。
只需要写个静态方法,使用[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)]即在在显示启动画面之前调用这个静态方法,在静态方法中调用SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate)来立即停止启动屏。
enumeration
设置 RuntimeInitializeOnLoadMethod 类型。
另请参阅:RuntimeInitializeOnLoadMethodAttribute。
AfterSceneLoad | 在场景加载后。 |
BeforeSceneLoad | 在场景加载前。 |
AfterAssembliesLoaded | 加载完所有程序集并初始化预加载资源时的回调。 |
BeforeSplashScreen | 在显示启动画面之前。 |
SubsystemRegistration | 用于子系统注册的回调 |
使用方法:
1. 将下面脚本文件直接作为Runtime代码放到项目里(注意,不是Editor代码,是运行时代码)
2. 打包->运行。果然,Unity Logo消失了,瞬间进入游戏,快速干净清爽。非常好用,无需破解,官方支持,全平台适用。
- #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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。