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

目录

一、效果:

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);
        });
    }
}

猜你喜欢

转载自blog.csdn.net/m0_46646863/article/details/130995182
今日推荐