前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Unity【InitializeOnLoadMethod】- 如何在项目工程打开时创建一个窗口

Unity【InitializeOnLoadMethod】- 如何在项目工程打开时创建一个窗口

作者头像
CoderZ
发布于 2022-08-29 08:43:45
发布于 2022-08-29 08:43:45
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

我们在Unity中安装的一些插件、工具,会在工程打开时弹出一个相关介绍的窗口,实现这样的功能需要用到InitializeOnLoadMethod这个特性,下面是官方文档中关于该特性的介绍:

使用了该特性的静态函数会在Unity工程加载时,不需要用户做任何操作,函数将会自动执行,下面是使用该特性实现的一个简单的用于测试的窗口:

测试代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using UnityEngine;
using UnityEditor;
//首先要继承EditorWindow窗口类
public class Example : EditorWindow
{
    [InitializeOnLoadMethod]
    private static void OnEditorLaunch()
    {
        //代码重新编译时该方法也会重新执行
        //使用时间判断避免重复执行
        if (EditorApplication.timeSinceStartup < 30)
        {
            //向此委托添加函数,以便将其执行延迟到检视面板更新完成之后
            //每个函数在添加后仅执行一次
            EditorApplication.delayCall += () =>
            {
                //获取窗口
                var window = GetWindow<Example>(true, "About", true);
                //设置窗口位置及大小
                window.position = new Rect(200, 200, 600, 300);
                //限制最小尺寸
                window.minSize = new Vector2(600, 300);
                //限制最大尺寸
                window.maxSize = new Vector2(600, 300);
                //打开窗口
                window.Show();
            };
        }
    }
    private void OnGUI()
    {
        //在窗口中绘制具体内容
        GUILayout.Label("SKFramework", new GUIStyle(GUI.skin.label) { fontSize = 50, fontStyle = FontStyle.Bold });
        GUILayout.Label("//TODO");
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 当代野生程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验