Описание
Эта функция вызывается при загрузке объекта.
Пример приведен ниже. В этом примере есть два скрипта. Первым показан сценарий ScriptableObject. Это реализует код, отдельный от MonoBehaviour. Второй — небольшой скрипт, связанный с MonoBehaviour, который обращается к значениям из скрипта ScriptableObject.
// Пример скрипта ScriptableObject.
// Элементы A и B реализуют функции, которые
// не связаны с MonoBehaviour.
using UnityEngine;
public class ScriptObj : ScriptableObject
{
int a = 10;
int[] b = new int[5] {0, 17, 34, 42, 67};
public int A
{
get {return a; }
}
// return value in b array, or -1 if x is out-of-range
public int B(int x)
{
if (x >= 0 && x <= 5)
return b[x];
else
return -1;
}
public void Awake()
{
Debug.Log("Awake");
}
public void OnEnable()
{
Debug.Log("OnEnable");
}
public void OnDisable()
{
Debug.Log("OnDisable");
}
public void OnDestroy()
{
Debug.Log("OnDestroy");
}
}
Следующий сценарий использует приведенный выше сценарий ScriptableObject.
// создать и получить доступ к ScriptObj
using UnityEngine;
public class ScriptObjExample : MonoBehaviour
{
ScriptObj test;
void Start()
{
test = (ScriptObj)ScriptableObject.CreateInstance(typeof(ScriptObj));
print(test.A);
print(test.B(3));
print(test.B(-3));
}
}
OnEnable не может быть сопрограммой.