Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
Unity 编辑器开发实战【Editor Window】- 构建公司内部的PackageManager
Unity中的资源包管理器Package Manager为我们提供了模块、工具包的集中管理功能,可在其中下载、升级相应的资源包,本文介绍如何构建公司内部的Package Manager资源包管理器。
CoderZ
2022/08/29
1.2K0
Unity 编辑器开发实战【Editor Window】- 构建公司内部的PackageManager
【Unity编辑器】UnityEditor多重弹出窗体与编辑器窗口层级管理
  最近马三为公司开发了一款触发器编辑器,对于这个编辑器策划所要求的质量很高,是模仿暴雪的那个触发器编辑器来做的,而且之后这款编辑器要作为公司内部的一个通用工具链使用。其实,在这款触发器编辑器之前,已经有一款用WinForm开发的1.0版触发器编辑器了,不过由于界面不太友好、操作繁琐以及学习使用成本较高,所以也饱受策划们的吐槽。而新研发的这款编辑器是直接嵌入在Unity中,作为Unity的拓展编辑器来使用的。当然在开发中,马三也遇到了种种的问题,不过还好,在同事的帮助下都一一解决了。本篇博客,马三就来和大家分享一下其中一个比较有趣的需求,RT,“UnityEditor多重弹出窗体与编辑器窗口层级管理”。   针对一些逻辑和数据部分的代码,由于是公司机密而且与本文的内容联系不大,马三就不和大家探讨了,本文中我们只关注UI的表现部分。(本文中所有的样例代码均经过重写,只用了原来的思想,代码结构已经和公司的编辑器完全不一样了,因此不涉及保密协议,完全开源,大家可以放心使用)先来说下今天我们要探讨的这个需求吧:
马三小伙儿
2018/09/12
4.1K0
【Unity编辑器】UnityEditor多重弹出窗体与编辑器窗口层级管理
五、编辑器开发之GUIStyle
在编辑器开发中会大量用到GUIStyle,为了能够精确的实现想要的样式,将所有的样式列在一个窗口中进行预览,如下:
CoderZ
2022/08/29
5110
五、编辑器开发之GUIStyle
Unity 编辑器开发实战【Editor Window】- Replacer 替换器
如图所示,假如一个模型被大量的规整的摆放在场景中,当我们修改了这个模型需要替换时,需要将新模型按照如上位置进行逐个替换比较麻烦,下面介绍的工具Replacer可以很方便的进行批量替换:
CoderZ
2022/08/29
4230
Unity 编辑器开发实战【Editor Window】- Replacer 替换器
Unity【Multiplayer 多人在线】服务端、客户端通用架构的使用指南
•Package包中包含Server服务端内容以及protogen工具,将其解压到工程外;
CoderZ
2022/12/26
1.4K0
Unity【Multiplayer 多人在线】服务端、客户端通用架构的使用指南
Unity編輯器案列
Unity最强大的地方之一是它扩展性非常强的编辑器。Unite Europe 2016上有一个视频专门讲编辑器编程的:
bering
2019/12/02
1.4K0
Unity Editor【Open Folder Panel】- 打开选择文件夹窗口并记录文件夹路径
如图所示,在Unity Editor编辑器环境下编写这样一个功能:点击“浏览”按钮,打开一个窗口,选择文件夹并记录该文件夹的路径:
CoderZ
2022/08/29
3.6K0
Unity Editor【Open Folder Panel】- 打开选择文件夹窗口并记录文件夹路径
Unity 关于低版本是否可以引用高版本构建内容的可行性验证
本篇内容以Unity的一个相对较低的版本(2017.4.40)和一个相对较高的版本(2020.3.33),来验证在低版本中是否可以使用高版本中构建的内容,包括如下内容:
CoderZ
2022/09/08
1.2K0
Unity 关于低版本是否可以引用高版本构建内容的可行性验证
零基础入门 35:自定义窗口
Hello,各位小伙伴,最近公司的事务繁多,所以稍微搁置了一下更新的速度,导致很多同学都以为我被恐怖分子绑架了
韩东吉
2018/10/19
1.4K1
零基础入门 35:自定义窗口
Unity & 蓝湖 关于UI工作流优化的思考(二)
本文旨在让不会使用Unity的其他人员在简单了解该工具后,可以帮助研发人员搭建Unity中的UI预制体,研发人员稍作调整即可用,以减轻研发人员的工作压力。
CoderZ
2022/08/29
8750
Unity & 蓝湖 关于UI工作流优化的思考(二)
Unity & 蓝湖 关于UI工作流优化的思考
我们Unity项目关于UI界面制作的工作流是这样的,UI设计人员将设计好的UI界面在Adobe XD中上传至蓝湖,Unity程序猿从蓝湖中下载切图资源包导入项目工程中,根据蓝湖中的效果图、样式信息进行界面的搭建:
CoderZ
2022/08/29
8790
Unity & 蓝湖 关于UI工作流优化的思考
Unity 编辑器开发实战【Editor Window】- BlendShape调试工具
Skin Mesh Renderer组件编辑器本身包含BlendShape的调试滑动条,但是当数量较多想要重置时较为麻烦,下面介绍的工具添加了这些调试滑动条的同时,增加了一键重置的功能:
CoderZ
2022/08/29
7920
Unity 编辑器开发实战【Editor Window】- BlendShape调试工具
Unity Editor 基础篇(三):自定义窗口
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bering
2019/12/03
1.9K0
Unity 编辑器开发实战【Editor Window】- Animation Clip Previewer 动画片段预览工具
通常我们把一个人物模型拖到Scene场景中后是这样的: 本文制作一个在Scene窗口预览动画片段的工具,如图所示: 代码如下: using UnityEngine; using UnityEditor; namespace SK.Framework { /// <summary> /// 动画片段预览工具 /// </summary> public class AnimationClipPreviewer : EditorWindow {
CoderZ
2022/08/29
8390
Unity 编辑器开发实战【Editor Window】- Animation Clip Previewer 动画片段预览工具
Unity 编辑器开发实战【AssetDatabase】- 获取资产的依赖项、引用项
Unity AssetDatabase类中提供了获取资产依赖项的API,如果我们想要获取某一资产被哪些资产引用,可以通过如下思路去实现:
CoderZ
2022/08/29
1.3K0
Unity 编辑器开发实战【AssetDatabase】- 获取资产的依赖项、引用项
六、编辑器开发之GUIIcon
需要注意的是,图标是通过Resources方式加载所有的图片,需要在一个空的工程中进行加载并生成文本,或者工程的Resources文件夹下没有其他贴图资源。
CoderZ
2022/08/29
2910
六、编辑器开发之GUIIcon
[译]Unity 实用技巧
TextArea 特性可以让我们更加方便的在 Inspector 中编辑字符串文本.
用户2615200
2019/08/01
1.1K0
Unity 编辑器开发实战【Editor Window】- 关于提高Proto通信协议文件生成效率的考虑
在项目中使用Protobuf作为通信协议时,需要用到protogen.exe程序将.proto文件编译成.cs文件再导入Unity工程中使用:
CoderZ
2022/08/29
4170
Unity 编辑器开发实战【Editor Window】- 关于提高Proto通信协议文件生成效率的考虑
Unity Development Memo - 开发备忘录
Development Memo工具目前包含Notes开发笔记和Todos开发任务待办两部分,这里以待办Tab页为例简单介绍工具的使用:
CoderZ
2023/08/21
2450
Unity Development Memo - 开发备忘录
推荐阅读
相关推荐
Unity 编辑器开发实战【Editor Window】- 构建公司内部的PackageManager
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验