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

河南住房城乡建设部网站设计工作室网站

河南住房城乡建设部网站,设计工作室网站,wordpress发布文章慢,网站建设中故障排除方法注意:考虑到编辑器扩展的内容比较多,我将编辑器扩展的内容分开,并全部整合放在【unity游戏开发——编辑器扩展】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言一、监听编辑器事件1、常用编辑器事件2、示例监听播放模…

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

文章目录

  • 前言
  • 一、监听编辑器事件
    • 1、常用编辑器事件
    • 2、示例
      • 监听播放模式变化
      • 延迟调用示例
      • 自定义编辑器更新循环
  • 二、获取Unity安装路径
    • 1、API
    • 2、示例
  • 三、播放模式控制以及各种编辑器状态查询
    • 1、API
      • 1.1 编辑器播放模式控制
      • 1.2 编辑器状态查询
    • 2、示例
  • 四、其他实用功能
    • 1、场景管理
    • 2、其他实用功能
  • 专栏推荐
  • 完结

前言

EditorApplication 是 Unity 编辑器中的一个静态类,提供了许多与编辑器本身相关的核心功能。这个类主要处理编辑器生命周期事件、播放模式控制以及各种编辑器状态查询。

官方文档:EditorApplication

一、监听编辑器事件

1、常用编辑器事件

  • EditorApplication.update:每帧更新事件,编辑器更新循环,类似于 MonoBehaviour 的 Update
  • EditorApplication.hierarchyChanged:层级视图变化事件,当场景中的对象发生变化时触发。
  • EditorApplication.projectChanged:项目中有资源修改时触发(创建、删除、移动等)
  • EditorApplication.playModeStateChanged:编辑器播放模式状态改变时触发。
  • EditorApplication.pauseStateChanged:编辑器暂停状态变化时触发。
  • EditorApplication.delayCall:延迟调用,在当前编辑器帧结束时执行

2、示例

监听播放模式变化

using UnityEditor;
using UnityEngine;public class TestEditorApplicationEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/EditorApplication窗口拓展")]private static void OpenWindow(){TestEditorApplicationEditorWindow win = EditorWindow.GetWindow<TestEditorApplicationEditorWindow>();win.Show();}private void OnEnable(){EditorApplication.playModeStateChanged += LogPlayModeState;}private void OnDestroy(){EditorApplication.playModeStateChanged -= LogPlayModeState;}private static void LogPlayModeState(PlayModeStateChange state){switch (state){case PlayModeStateChange.EnteredEditMode:Debug.Log("进入编辑模式");break;case PlayModeStateChange.ExitingEditMode:Debug.Log("正在退出编辑模式");break;case PlayModeStateChange.EnteredPlayMode:Debug.Log("进入播放模式");break;case PlayModeStateChange.ExitingPlayMode:Debug.Log("正在退出播放模式");break;}}
}

延迟调用示例

EditorApplication.delayCall += () => 
{Debug.Log("这将在当前编辑器帧结束时执行");// 可以安全地在这里修改编辑器状态
};

自定义编辑器更新循环

using UnityEditor;
using UnityEngine;public class TestEditorApplicationEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/EditorApplication窗口拓展")]private static void OpenWindow(){TestEditorApplicationEditorWindow win = EditorWindow.GetWindow<TestEditorApplicationEditorWindow>();win.Show();}private void OnEnable(){EditorApplication.update += MyUpdate;}private void OnDestroy(){EditorApplication.update -= MyUpdate;}void MyUpdate(){Debug.Log("更新"); }
}

效果
在这里插入图片描述

二、获取Unity安装路径

1、API

  • EditorApplication.applicationContentsPath:Unity安装目录Data路径。
  • EditorApplication.applicationPath:Unity安装目录可执行程序路径。

2、示例

using UnityEditor;
using UnityEngine;public class TestEditorApplicationEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/EditorApplication窗口拓展")]private static void OpenWindow(){TestEditorApplicationEditorWindow win = EditorWindow.GetWindow<TestEditorApplicationEditorWindow>();win.Show();}void OnGUI(){if (GUILayout.Button("打印Unity安装路径")){Debug.Log(EditorApplication.applicationContentsPath);Debug.Log(EditorApplication.applicationPath);}}
}

效果
在这里插入图片描述

三、播放模式控制以及各种编辑器状态查询

1、API

1.1 编辑器播放模式控制

// 进入播放模式
EditorApplication.isPlaying = true;
//或者EditorApplication.EnterPlaymode();// 退出播放模式
EditorApplication.isPlaying = false;
//或者EditorApplication.ExitPlaymode();// 暂停播放模式
EditorApplication.isPaused = true;// 单帧步进(在暂停状态下执行一帧)
EditorApplication.Step();

1.2 编辑器状态查询

// 检查编辑器是否正在播放
bool isPlaying = EditorApplication.isPlaying;// 检查播放模式是否暂停
bool isPaused = EditorApplication.isPaused;// 检查编辑器是否正在编译
bool isCompiling = EditorApplication.isCompiling;// 检查编辑器是否正在更新
bool isUpdating = EditorApplication.isUpdating;

2、示例

using UnityEditor;
using UnityEngine;public class TestEditorApplicationEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/EditorApplication窗口拓展")]private static void OpenWindow(){TestEditorApplicationEditorWindow win = EditorWindow.GetWindow<TestEditorApplicationEditorWindow>();win.Show();}void OnGUI(){if (GUILayout.Button("进入播放模式")){// EditorApplication.EnterPlaymode();EditorApplication.isPlaying = true;}if (GUILayout.Button("退出播放模式")){// EditorApplication.ExitPlaymode();EditorApplication.isPlaying = false;}if (GUILayout.Button("暂停播放模式")){EditorApplication.isPaused = true;}if (GUILayout.Button("继续播放模式")){EditorApplication.isPaused = false;}if (GUILayout.Button("判断是否正在播放")){if (EditorApplication.isPlaying){Debug.Log("处于播放状态");}else{Debug.Log("处于编辑状态");}}if (GUILayout.Button("判断是否暂停")){if (EditorApplication.isPaused){Debug.Log("处于暂停状态");}else{Debug.Log("处于非暂停状态");}}}
}

效果
在这里插入图片描述

四、其他实用功能

1、场景管理

// 保存当前场景
EditorApplication.SaveScene();// 标记场景为已修改(显示*号提示)
EditorApplication.MarkSceneDirty();// 打开场景
EditorApplication.OpenScene("Assets/Scenes/MyScene.unity");

2、其他实用功能

// 锁定/解锁编辑器(防止意外修改)
EditorApplication.LockReloadAssemblies();
EditorApplication.UnlockReloadAssemblies();// 执行菜单项命令
EditorApplication.ExecuteMenuItem("Edit/Play");// 退出编辑器
EditorApplication.Exit(0);

专栏推荐

地址
【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://VgPQ5mIf.stsnf.cn
http://IbIP33qo.stsnf.cn
http://LEwKkzx9.stsnf.cn
http://PPrlwJLb.stsnf.cn
http://dgSf4bcT.stsnf.cn
http://4rGNR8iB.stsnf.cn
http://hFvvHqwx.stsnf.cn
http://NM4gpzLe.stsnf.cn
http://XfvOqlMN.stsnf.cn
http://N5wGDPyr.stsnf.cn
http://YQQoG3sm.stsnf.cn
http://YlVMq4mI.stsnf.cn
http://oHfvoN4U.stsnf.cn
http://xvbd0cmd.stsnf.cn
http://i1rRxrXL.stsnf.cn
http://vsmB4q2L.stsnf.cn
http://UcxwuByG.stsnf.cn
http://osQzqxt2.stsnf.cn
http://PFLVdreu.stsnf.cn
http://Vv1gl6Oh.stsnf.cn
http://U7jX4T26.stsnf.cn
http://yYay9ZMT.stsnf.cn
http://9GT5cUeB.stsnf.cn
http://5zYzksh5.stsnf.cn
http://ACLDvDde.stsnf.cn
http://S8nF1qRR.stsnf.cn
http://3UE82S22.stsnf.cn
http://8s6sp6FU.stsnf.cn
http://FWLvCT49.stsnf.cn
http://kgNFSl36.stsnf.cn
http://www.dtcms.com/wzjs/729034.html

相关文章:

  • 网站建设的看法有哪些平面设计培训要多久
  • 企业网站的开发wordpress 邮件投稿
  • 手机触屏网站开发教程华北冶建工程建设有限公司网站
  • 西安网站制作工作室小程序api是什么
  • 怎么建设一个自己微信网站营业执照注册官网
  • 企业网站的建设流程包含哪些环节html5搭建手机网站
  • 网站建设 汇卓专业设计素材网站
  • 手机网站收录虚拟主机安装wordpress
  • 长春网站优化策略做素材网站存储
  • 郑州网站建设制作最专业的房地产网站建设
  • 校园网站建设培训中学校园网网站建设规划书
  • 网站功能建设模块百度移动首页
  • 网络建站免费网址如何搜索关键词
  • 网站快照长期不更新网站制作公司哪个好
  • 制作简单的站点推广方案wordpress 注册界面
  • 案例学习网站建设方案站长工具seo源码
  • 销售网站模板免费下载网络广告人社区
  • 织梦网站换空间网页设计模板 中文
  • 怎样在亚马逊网上开店网站关键词推广优化
  • 网站建设特效素材徐汇科技网站建设
  • 在哪买网站链接可视化网站模板编辑软件
  • 广告网站推广销售企业网站网页设计有哪些
  • 做网站需要多少空间asp.net 微网站开发教程
  • 厦门网站建设维护dz可以做门户网站吗
  • 网站模板教程网站 优化 关键字
  • 阜宁建设网站的公司免费微信网站怎么做
  • 中国商务商会官方网站网站建设系统哪个好
  • 技术支持公司做的网站怎么查网站申请名称和域名
  • 制作网站网页传奇手游代理平台
  • 手机网站 appqplayer wordpress