Unity 基础 之 ExecuteAlways介绍

简介: ExecuteAlways简介

在Unity的编辑器中分为三种模式:

  1. 编辑器模式:打开任意工程,不做任何操作Unity就处于一个可编辑的状态,这就是编辑器模式;
  2. 运行模式:当我们点击Play(▶)运行一个场景时,这时Unity就处于运行模式;
  3. 预制体模式:当Unity进入Prefab时对应的编辑状态叫预制体模式;

ExecuteInEditMode

描述:使脚本的所有实例都在编辑模式下执行。

默认情况下,只在编辑器运行模式下执行 MonoBehaviours。通过添加此属性,MonoBehaviour 的任何实例都将在编辑器处于编辑模式时执行其回调函数。

此属性正在逐步被淘汰,因为它不考虑预制体模式。如果在预制件模式下编辑一个带有 MonoBehaviour 并启用了此属性的预制件,然后进入播放模式,则编辑器将退出预制件模式,以防止由仅用于播放模式的逻辑引起的预制件意外修改。

要指示 MonoBehaviour 正确考虑了预制件模式并且在播放模式期间以预制件模式打开是安全的,可以使用属性 ExecuteAlways 取代此属性。

下面几个函数和运行模式下调用情况不同:

  • Update:只有当场景发生变化时才会调用。
  • OnGUI:在“游戏视图”接收到非编辑器时调用。事件它不使用(例如,EventType.ScrollWheel)并且不转发到编辑器的键盘快捷方式系统(例如,EventType.KeyDown, EventType.KeyUp)。转发到游戏视图的事件将排队,不能保证立即处理。
  • OnRenderObject:在场景视图或游戏视图的每一次重绘上都调用其他呈现回调函数。

ExecuteAlways

使脚本的实例始终执行,作为Play Mode的一部分和Editing。

默认情况下,MonoBehaviours仅在Play Mode下执行。

当希望脚本作为编辑器工作的一部分执行某些操作时,可以使用[ExecuteAlways]属性,该工具不一定与构建

仅在Scene发生改变是调用Update
当Game 试图接收到它不使用的非编辑器事件(例如,EventType.ScrollWheel)会调用OnGUI
在场景试图或者Game试图的每次重绘都会调用OnRenderObject和其他渲染回调函数

相关文章
|
搜索推荐 Linux C#
Unity基础
Unity是什么,Unity是一个游戏开发引擎,他功能强大,学习简单,炉石传说,王者荣耀等游戏就是利用Unity引擎开发出来的
323 0
Unity基础
|
图形学
学UNITY的基础
先看线性代数教材 再看计算机图形学第三章-几何造型技术 和第五章的法向量高等数学教材   的基础 就没有任何疑问了
|
JSON 数据格式
Unity 基础之LitJSON
最近接手一个项目,在项目中有用到Json的地方,根据网上找到的资料 客户端配置文件优化策略,综合评定发现LitJson还不错,于是找到Json下载的网站的网站下载对应的Json,进入LitJson后尽然提示我 404! WTF?!!!我可是会科学上...
1601 0
|
存储 图形学
Unity3D基本入门及功能介绍
第一,界面入门Unity3D 最经典 2 by 3 结构界面,上面呈现了 Unity3D 最为常用的几个面板,下面为各个面板的详细说明。1.Scene【场景面板】:该面板为 Unity3D 的编辑面板;你可以将你所有的模型、灯光、以及其他材质对象拖放到该场景中。
2842 0
|
图形学
Unity等待写入数据
EasyTouch中QuickGesture的用法 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
979 0
|
数据可视化 C# 图形学
|
C# 图形学 调度
Unity框架与资源打包
对象池一种通用型的技术,在其他语言中也会用到 池线程池、网络连接池,池是一个思想,将不用的东西暂时用池存起来,等到再次使用的时候再调出来用,节省CPU的调度 对象C#的任何一个类都可以实例化一个对象Object Unity中的游戏对象GameObject 思路最开始的时候,池中没有对象,需要生成。
1623 0

热门文章

最新文章