当前位置:网站首页>Executealways of unity is replacing executeineditmode

Executealways of unity is replacing executeineditmode

2022-07-05 06:51:00 Chen Yan will act

Unity Basics And ExecuteAlways Introduce

stay Unity The editor of is divided into three modes :

  1. Editor Mode : Open any project , Do nothing Unity It is in an editable state , This is the editor mode ;
  2. Operation mode : When we click Play() When running a scenario , At this time Unity It is in operation mode ;
  3. Preform mode : When Unity Get into Prefab The corresponding editing state is called preform mode ;

ExecuteInEditMode

describe : Make all instances of the script execute in edit mode .

By default , Only execute in editor running mode MonoBehaviours. By adding this attribute ,MonoBehaviour Any instance of will execute its callback function when the editor is in edit mode .

This attribute is being phased out , Because it does not consider the precast mode . If you edit a with MonoBehaviour And the preform with this attribute enabled , Then enter the playback mode , The editor will exit the preform mode , To prevent accidental modification of the preform caused by the logic used only in the playback mode .

To instruct MonoBehaviour It is safe to consider the preform mode correctly and open it in the preform mode during the playback mode , You can use properties ExecuteAlways Replace this attribute .

The following functions and operation modes are called differently :

  • Update: Only when the scene changes .
  • OnGUI: stay “ Game view ” Called when a non editor is received . Event it does not use ( for example ,EventType.ScrollWheel) And do not forward to the editor's keyboard shortcut system ( for example ,EventType.KeyDown, EventType.KeyUp). Events forwarded to the game view will be queued , Immediate treatment cannot be guaranteed .
  • OnRenderObject: Call other rendering callback functions on each redrawing of the scene view or game view .

ExecuteAlways

Make the instance of the script always execute , As Play Mode Part of and Editing.

By default ,MonoBehaviours Only in Play Mode perform .

When you want the script to do something as part of the editor's work , have access to [ExecuteAlways] attribute , This tool is not necessarily related to building

Only in Scene The change is called Update
When Game Trying to receive a non editor event that it does not use ( for example ,EventType.ScrollWheel) Would call OnGUI
Try or Game Every attempt to redraw will call OnRenderObject And other rendering callback functions

原网站

版权声明
本文为[Chen Yan will act]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050634285778.html