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和其他渲染回调函数

相关文章
|
4月前
|
数据可视化 vr&ar C#
|
12月前
|
安全 C# 图形学
Unity3D学习之路
Unity3D学习之路
70 0
|
12月前
|
弹性计算 监控 测试技术
Unity3D 一些工具总结
Unity3D 一些工具总结
133 0
|
XML 存储 人工智能
Unity面试题——Unity脚本基础
Unity面试题——Unity脚本基础
307 1
|
图形学
Unity实战之见缝插针
Unity实现见缝插针小游戏
Unity实战之见缝插针
|
编解码 前端开发 数据可视化
Unity面试题——Unity编辑器基础
Unity面试题——Unity编辑器基础
434 0
|
搜索推荐 Linux C#
Unity基础
Unity是什么,Unity是一个游戏开发引擎,他功能强大,学习简单,炉石传说,王者荣耀等游戏就是利用Unity引擎开发出来的
302 0
Unity基础
|
vr&ar 图形学 开发者
从零开始的Unity萌导书#1:Hello,Unity!
当我们在谈论游戏开发工具时,我们在谈论什么? 在当代,已经出现了很多专业的游戏开发工具,Unity就是其中之一。作为一个跨平台的游戏引擎,Unity已经成为成千上万经验丰富的开发者构建游戏或者VR/AR交互项目的首选引擎方案。
1537 0
|
C# 图形学 调度
Unity框架与资源打包
对象池一种通用型的技术,在其他语言中也会用到 池线程池、网络连接池,池是一个思想,将不用的东西暂时用池存起来,等到再次使用的时候再调出来用,节省CPU的调度 对象C#的任何一个类都可以实例化一个对象Object Unity中的游戏对象GameObject 思路最开始的时候,池中没有对象,需要生成。
1614 0
|
存储 图形学
Unity3D基本入门及功能介绍
第一,界面入门Unity3D 最经典 2 by 3 结构界面,上面呈现了 Unity3D 最为常用的几个面板,下面为各个面板的详细说明。1.Scene【场景面板】:该面板为 Unity3D 的编辑面板;你可以将你所有的模型、灯光、以及其他材质对象拖放到该场景中。
2815 0