Version: 2020.1
Details of disabling Domain and Scene Reload
Script Serialization

Corriendo Código Script del Editor en la Ejecución

A veces, es útil ser capaz de correr algo de código script del editor en un proyecto tan pronto Unity se ejecuta sin requerir una acción por parte del usuario. Usted puede hacer esto al aplicar el atributo InitializeOnLoad a una clase que tiene un static constructor (constructor estático). Un constructor estático es una función con el mismo nombre que la clase, declarado estático y sin un tipo de retorno o parámetros (ver aquí for more information):-

using UnityEngine;
using UnityEditor;

[InitializeOnLoad]
public class Startup {
    static Startup()
    {
        Debug.Log("Up and running");
    }
}

Un constructor estático siempre se garantiza que será llamado antes de cualquier función estática o instancia de la clase utilizada, pero el atributo InitializeOnLoad asegura que es llamado cuando el editor se ejecuta.

Un ejemplo de cómo esta técnica puede ser utilizado es configurando un callback regular en el editor (su “actualización de frame”, por así decirlo). La clase EditorApplication tiene un delegado llamado update que es llamado tantas veces en un segundo mientras el editor está ejecutándose. Para tener este delegado activado cuando el proyecto se ejecute, usted podría utilizar código como el siguiente:-

using UnityEditor;
using UnityEngine;

[InitializeOnLoad]
class MyClass
{
    static MyClass ()
    {
        EditorApplication.update += Update;
    }

    static void Update ()
    {
        Debug.Log("Updating");
    }
}

Details of disabling Domain and Scene Reload
Script Serialization
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961