千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Unity编辑器启动弹窗

Unity编辑器启动弹窗

来源:千锋教育
发布人:qyf
时间: 2022-08-25 18:29:15 1661423355

Unity编辑器启动弹窗

  公司开发需求,在Unity启动时弹一次提示框以显示一些开发规范。

  查询得知unity拥有属性 [InitializeOnLoad],用该属性标记过的静态类会在unity启动和重新编译时调用一次构造函数,在此构造函数中调用弹框方法即可实现需求。

  但是为了去掉重新编译时反复弹框的功能,第一次弹框后记录“StartUp”值,之后检测该值不再弹框,关闭unity时清除该值,保证下次启动弹框功能正常。

  贴上代码:

  using UnityEngine;

  using UnityEditor;

  [InitializeOnLoad]

  public class OnUnityStartTest : Editor

  {

  static OnUnityStartTest()

  {

  EditorApplication.quitting -= Quit;

  EditorApplication.quitting += Quit;

  EditorApplication.update -= Update;

  EditorApplication.update += Update;

  }

  static void Update()

  {

  int startKey = PlayerPrefs.GetInt("StartUp", 0);

  if (startKey <= 0)

  {

  startKey++;

  WelcomeScreen.ShowWindow();

  PlayerPrefs.SetInt("StartUp", startKey);

  EditorApplication.update -= Update;

  }

  }

  static void Quit()

  {

  PlayerPrefs.SetInt("StartUp", 0);

  }

  }

  public class WelcomeScreen : EditorWindow

  {

  private Rect textRect = new Rect(15f, 15f, 200f, 100f);

  public void OnGUI()

  {

  GUIStyle style = new GUIStyle();

  style.fontSize = 20;

  style.normal.textColor = Color.white;

  GUI.Label(this.textRect, "Hello!!!!zahll1993", style);

  }

  public static void ShowWindow()

  {

  WelcomeScreen window = EditorWindow.GetWindow(true, "Start!");

  window.minSize = window.maxSize = new Vector2(300f, 300f);

  DontDestroyOnLoad(window);

  }

  }

  更多关于“unity培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT