Как говорили другие, это новый синтаксис для создания функций.
Однако этот вид функций отличается от обычных:
this
стоимость. Как объяснено , spec , An ArrowFunction не определяет локальные привязки для arguments
, super
, this
или new.target
. Любая ссылка на arguments
, super
, this
или new.target
в ArrowFunction должна быть разрешена к привязке в лексически закрывающей среде. Обычно это будет функциональная среда сразу входящей функции. Хотя функция ArrowFunction может содержать ссылки на super
, функциональный объект, созданный на шаге 4, не превращается в метод, выполняя MakeMethod . Функция ArrowFunction , которая ссылается на super
, всегда содержится внутри функции [ Arrow [], а необходимое для реализации super
доступное через область который захватывается функциональным объектом ArrowFunction . var f = a => a;
f(123); // 123
new f(); // TypeError: f is not a constructor
Вы можете использовать BeginChangeCheck / EndChangeCheck, чтобы обнаружить модификацию.
EditorGUI.BeginChangeCheck();
_conversations.arraySize = EditorGUILayout.IntField("Conversations Size", _conversations.arraySize);
if(EditorGUI.EndChangeCheck()) {
for ...
}
Просмотр страницы
page = EditorGUILayout.IntField("Page", page);
int index = page * countPerPage;
for(int x = index; i < Mathf.Min(_conversations.arraySize, index + countPerPage); ++i)
{
...
}
Вы можете попытаться сохранить только размер массива старых разговоров в целое число, не сохраняя второй массив. Но есть шанс, что это не сработает, потому что я думаю, что код onInspectorGui должен выполняться при каждом вызове (но не уверен в этом).