您现在的位置是:首页 >其他 >关闭Unity启动画面Logo【Unity2021.3.2】网站首页其他

关闭Unity启动画面Logo【Unity2021.3.2】

螃(龐)蟹 2024-09-02 00:01:02
简介unity 关闭启动动画

目录

一、效果:

1.未修改:

​2.修改后:

二、[Preserve]特性:

三、[RuntimeInitializeOnLoadMethod()]

四、Task.Run 方法:

五、SplashScreen.Stop方法:

六、最终代码:


一、效果:

1.未修改:

 2.修改后:

二、[Preserve]特性:

详细说明可以看这位老哥的:使用Preserve特性防止反射调用代码在build时被裁剪

大概意思是:

代码在构建过程中会删除未使用或不可访问的代码,减少程序的最终大小。

[Preserve]:

可以显式声明在构建中保留的代码【防止程序打包后,需要的代码没有打包进程序中】

using UnityEngine.Scripting;//Preserve命名空间

[Preserve]  //特性
public class WipeOffLoGo //告诉编译器打包时将自己打包进程序
{
    
}

三、[RuntimeInitializeOnLoadMethod()]

官方API地址:RuntimeInitializeOnLoadMethodAttribute

允许在运行时加载游戏时不通过用户操作 初始化一个运行时类方法。

游戏加载后,在调用Awake之后,会调用标记为 [RuntimeInitializeOnLoadMethod] 的 方法。

using UnityEngine;//引用命名空间

public class WipeOffLoGo
{
    [RuntimeInitializeOnLoadMethod]
    private static void LoGo()
    {
             
    }

   [RuntimeInitializeOnLoadMethod(枚举)]
    private static void LoGo()
    {
             
    }
}
RuntimeInitializeOnLoadMethod[枚举]
AfterSceneLoad在场景加载后
BeforeSceneLoad在场景加载前
AfterAssembliesLoaded加载完所有程序集并初始化预加载资源时的回调
BeforeSplashScreen在显示启动画面之前
SubsystemRegistration用于子系统注册的回调

四、Task.Run 方法:

API地址:Task.Run 方法

如果不开启线程执行的话,这里使用的关闭启动画面代码有可能执行不到

五、SplashScreen.Stop方法:

API地址:SplashScreen.Stop

Unity官方提供API,用于停止启动画面渲染

SplashScreen.Stop[枚举]
StopImmediate立即停止渲染 SplashScreen
FadeOut跳到启动画面的最后阶段,并从背景逐渐过渡到游戏

六、最终代码:

这个脚本建议放在 Plugins 目录下【WebGL适用】

using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Scripting;

[Preserve]//特性,防止在打包的时候这个脚本 没有被打包进程序
public class StopVray
{
    //在启动画面显示之前执行这个方法
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)]
    private static void Test()
    {
        Task.Run(() =>
        {
            SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate);
        });
    }
}

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。