Kadang-kadang, berguna untuk dapat menjalankan beberapa kode skrip editor dalam proyek segera setelah peluncuran Unity tanpa memerlukan tindakan dari pengguna. Anda dapat melakukan ini dengan menerapkan atribut InitializeOnLoad ke kelas yang memiliki static constructor. Konstruktor statis adalah fungsi dengan nama yang sama seperti kelas, dinyatakan statis dan tanpa jenis pengembalian atau parameter (lihat here untuk informasi lebih lanjut):-
using UnityEngine;
using UnityEditor;
[InitializeOnLoad]
public class Startup {
static Startup()
{
Debug.Log("Up and running");
}
}
Konstruktor statis selalu dijamin disebut sebelum fungsi statis atau contoh kelas digunakan, tetapi atribut InitializeOnLoad memastikan bahwa itu disebut sebagai peluncuran editor.
Contoh dari bagaimana teknik ini dapat digunakan adalah dalam mengatur callback reguler di editor (misalnya "perbarui bingkai", karena itu). Kelas EditorAplikasi memiliki delegasi yang disebut update yang disebut banyak kali detik saat editor berjalan. Untuk memiliki delegasi ini diaktifkan sebagai peluncuran proyek, Anda dapat menggunakan kode seperti berikut:-
using UnityEditor;
using UnityEngine;
[InitializeOnLoad]
class MyClass
{
static MyClass ()
{
EditorApplication.update += Update;
}
static void Update ()
{
Debug.Log("Updating");
}
}