当前位置: 首页 > news >正文

合肥商城网站建设地址建设网站账务处理

合肥商城网站建设地址,建设网站账务处理,小程序发布要多少钱,重庆网站建设 重庆网站制作注意:考虑到编辑器扩展的内容比较多,我将编辑器扩展的内容分开,并全部整合放在【unity游戏开发——编辑器扩展】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言一、自定义窗口1、创建窗口类2、创建窗口对象3、显示窗…

注意:考虑到编辑器扩展的内容比较多,我将编辑器扩展的内容分开,并全部整合放在【unity游戏开发——编辑器扩展】专栏里,感兴趣的小伙伴可以前往逐一查看学习。

文章目录

  • 前言
  • 一、自定义窗口
    • 1、创建窗口类
    • 2、创建窗口对象
    • 3、显示窗口
  • 二、窗口函数和方法
    • 1、编辑器窗口类中的常用成员
    • 2、窗口中常用的生命周期函数
    • 3、窗口事件回调函数
      • 3.1事件回调函数
      • 3.2 示例
  • 专栏推荐
  • 完结

前言

当我们想要为Unity拓展一个自定义窗口时,我们只需要实现一个继承了EditorWindow的类即可,并且在该类的OnGUI函数中编写面板控件相关的逻辑。

  • 命名空间UnityEditor
  • 关键类EditorWindow

一、自定义窗口

1、创建窗口类

using UnityEditor;
using UnityEngine;public class EditorWindowTest : EditorWindow
{private void OnGUI(){GUILayout.Label("测试文本");if (GUILayout.Button("测试按钮")){Debug.Log("Test");}}
}

2、创建窗口对象

我们可以调用EditorWindow.GetWindow创建窗口对象。

EditorWindow.GetWindow<T>(bool utility, string title, bool focus, params Type[] desiredDockNextTo)

参数

  • T:窗口类的类型
  • utility:为true可创建浮动实用程序窗口,设置为false可创建正常窗口。所谓浮动窗口就是可以自由拖动自由改变大小
  • title:窗口标题
  • focus:是否为窗口提供焦点(如果已存在)。如果GetWindow创建新窗口,则将始终获得焦点
  • desiredDockNextTo:窗口试图停靠到其上的EditorWindow类型的数组

3、显示窗口

创建窗口对象之后调用对象的Show方法即可显示窗口。

用前面我们学习的【使用MenuItem自定义菜单栏拓展】知识,添加一个自定义页签用于开启窗口,如下:

using UnityEditor;
using UnityEngine;public class MenuItemTest
{[MenuItem("编辑器拓展/自定义窗口拓展/显示自定义窗口")]private static void ShowWindow(){EditorWindowTest win = EditorWindow.GetWindow<EditorWindowTest>();win.titleContent = new GUIContent("自定义窗口");win.Show();}
}

效果
在这里插入图片描述

二、窗口函数和方法

1、编辑器窗口类中的常用成员

  • 静态变量
    • focusedWindow:当前已获得键盘焦点的EditorWindow。(只读)
    • mouseOverWindow:当前在鼠标光标下的EditorWindow。(只读)
  • 静态函数
    • CreateWindow:创建窗口,如果允许一个窗口有多个可以用该API创建窗口,这样创建的窗口不是单例唯一的。
    • GetWindow:通过它我们可以创建一个窗口对象,这样创建的窗口是单例唯一的。
    • GetWindowWithRect:返回一个指定位置、大小的窗口。
    • HasOpenInstances:检查编辑器窗口是否打开。
  • 成员变量
    • titleContent:窗口标题名。
    • positon:窗口位置大小信息。
    • wantsMouseEnterLeaveWindow:如果设置为true,则每当鼠标进入或离开窗口时,该窗口都会收到一次OnGUI调用。
  • 成员函数
    • Show:显示面板。
    • Repaint:重绘窗口。
    • Close:关闭窗口。

2、窗口中常用的生命周期函数

  • OnEnable():当窗口被激活时调用,通常在窗口创建时会调用一次。在这个方法中,你可以进行一些初始化工作,例如注册事件监听器或设置初始变量。
  • OnGUI():每帧都会调用此方法,用于绘制编辑器窗口的GUI。在这个方法中,你可以使用GUILayout或EditorGUILayout等类创建界面元素,以便用户与窗口进行交互。
  • OnDestroy():当窗口被销毁时调用,通常在关闭编辑器或切换场景时触发。在这里进行最终的清理工作,确保没有未释放的资源。
  • Update():在编辑器窗口每帧更新时调用。通常在这里执行一些需要在每帧进行的逻辑。

3、窗口事件回调函数

3.1事件回调函数

继承EditorWindow的窗口类自带一些事件回调函数,当触发对应事件时会自动进入:

  • OnHierarchyChange():当场景中的层次结构(Hierarchy)发生变化时调用。例如,当游戏对象被创建、删除或重命名时触发。
  • OnFocus():当窗口获得焦点时调用。在这个方法中,你可以执行一些在窗口获得焦点时需要进行的操作。
  • OnLostFocus():当窗口失去焦点时调用。通常在这个方法中执行一些在窗口失去焦点时需要进行的清理工作。
  • OnProjectChange():当项目资源发生变化时调用。例如,当添加、删除或修改项目中的文件时触发。
  • OnInspectorUpdate():在检视器(Inspector)面板更新时调用。可以在这个方法中执行需要在检视器面板刷新时进行的逻辑,比如更新显示的信息。
  • OnSelectionChange():当选择的对象发生变化时调用。在这个方法中,你可以执行与所选对象相关的操作,以确保编辑器窗口的内容与当前选择保持同步。

3.2 示例

using UnityEditor;
using UnityEngine;public class EditorWindowTest : EditorWindow
{private void OnGUI(){GUILayout.Label("测试文本");if (GUILayout.Button("测试按钮")){Debug.Log("Test");}}private void OnHierarchyChange(){Debug.Log("当Hierarchy窗口内容发生变化时");}private void OnFocus(){Debug.Log("获取焦点");}private void OnLostFocus(){Debug.Log("失去焦点");}private void OnProjectChange(){Debug.Log("当Project窗口内容发生变化时");}private void OnInspectorUpdate(){Debug.Log("当Inspector窗口内容发生变化时");}private void OnSelectionChange(){Debug.Log("当选中对象发生变化时");}
}

效果
在这里插入图片描述


专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

http://www.dtcms.com/a/472740.html

相关文章:

  • 保定模板做网站网站站长如何赚钱
  • 网站建设销售好wordpress所有外链本地化
  • cadisen卡迪森手表网站做网站答辩总结范文
  • 外贸先做网站还是开公司沈阳市建设工程信息网招标公告
  • 广州企业建站素材深圳企业培训
  • 吉利网站建设网站制作 苏州
  • 南京网站建设希丁哥网站首页快照怎么做
  • 怎么查网站是否被k中文网站模板
  • 网站建设维护php动漫制作专业相近专业
  • 常熟seo网站优化软件做网站优化企业
  • 做网站背景图片要多大市住建设局网站
  • 重庆市建设银行网站如何做网站产品经理
  • 哪些网站是动态pc网站开发成app难度
  • 荣县网站建设做的网站怎么样才能再网上看到
  • 湖州 网站建设手机网站适合分开做
  • 互联网网站设计网站开发用什么好
  • 深圳seo网站优化公司wordpress 帮助插件
  • 公司网站做好了还需做网站销售东西 需要什么资质
  • 网站建设 方案 评价表网站页面优化技巧
  • 昆明网站建设首选公司网站建设方案书要写吗
  • 适合小型网络公司的建站方式可以为wordpress高亮
  • 什么是响应式网站建设阿里巴巴国际站关键词推广
  • 网站公司怎么做运营商成都网站设计师
  • 网站建设一级页面二级页面网页新建站点
  • 网站群建设需求安溪住房和城乡建设网站
  • 专门做手工的网站谷歌网页
  • 优化网站性能监测域名注册好怎么建设网站
  • 仿网站后台怎么做永灿网站建设公司
  • cakephp网站开发框架英文网站模板 查看
  • 包头焦点网站建设群晖 套件 wordpress