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

举报
CoderZ1010 发表于 2022/09/25 04:52:57 2022/09/25
【摘要】 我们在Unity中安装的一些插件、工具,会在工程打开时弹出一个相关介绍的窗口,实现这样的功能需要用到InitializeOnLoadMethod这个特性,官方文档中的介绍: 使用了该特性的静态函数会在Unity工程加载时,不需要用户做任何操作,函数将会自动执行,下面是使用该特性实现的一个简单的窗口: 代码如下: using...

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

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

代码如下:


  
  1. using UnityEngine;
  2. using UnityEditor;
  3. public class Example : EditorWindow
  4. {
  5. [InitializeOnLoadMethod]
  6. private static void OnEditorLaunch()
  7. {
  8. //代码重新编译时该方法也会重新执行
  9. //使用时间判断避免重复执行
  10. if (EditorApplication.timeSinceStartup < 30)
  11. {
  12. //向此委托添加函数,以便将其执行延迟到检视面板更新完成之后
  13. //每个函数在添加后仅执行一次
  14. EditorApplication.delayCall += () =>
  15. {
  16. //获取窗口
  17. var window = GetWindow<Example>(true, "About", true);
  18. //设置窗口位置及大小
  19. window.position = new Rect(200, 200, 600, 300);
  20. //限制最小尺寸
  21. window.minSize = new Vector2(600, 300);
  22. //限制最大尺寸
  23. window.maxSize = new Vector2(600, 300);
  24. //打开窗口
  25. window.Show();
  26. };
  27. }
  28. }
  29. private void OnGUI()
  30. {
  31. //在窗口中绘制具体内容
  32. GUILayout.Label("SKFramework", new GUIStyle(GUI.skin.label) { fontSize = 50, fontStyle = FontStyle.Bold });
  33. GUILayout.Label("//TODO");
  34. }
  35. }

文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。

原文链接:coderz.blog.csdn.net/article/details/123306954

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。