Предположим, имеется следующий код:
using System.Collections;
using UnityEngine;
public class Test : MonoBehaviour
{
public int Field1;
public int Field2 { get; private set; }
[SerializeField] private debug _fieldForDebug;
[SerializeField] private int _field3;
private int _field4;
private enum debug
{
value1 = 0,
value2 = 1,
}
[Header("Links to instances")]
[SerializeField] private Script script;
private void Awake()
{
// ...
}
private void Start()
{
// ...
}
private void Update()
{
// ...
}
public void function1()
{
// ...
}
private void function2()
{
StartCoroutine(enumerator3());
// ...
}
private IEnumerator enumerator3()
{
// ...
}
private void function4()
{
// ...
}
}
В правильном ли порядке здесь объявляются структуры?
С порядком объявления полей вроде как понятно, сначала идут публичные поля, затем поля с приватным сеттором, затем идут приватные сериализуемые, то есть доступные через редактор, и после них обычные приватные. Отдельно записаны сериализуемые ссылки на экземпляры.
С методами сложнее - сначала идут стандартные Unity-методы Awake (вызывается самым первым) и Start (оба вызываются сразу после запуска сцены), далее метод Update, который вызывается во время работы постоянно. Должен ли публичный метод function1 стоять до этих стандартных методов (ведь публичные структуры должны быть в начале)? Если код должен читаться сверху вниз в том порядке, в котором он выполняется, то function1 должен быть после. Должен ли метод function4 быть до нумератора enumerator3, если enumerator3 вызывается из function2?
Правильный ли здесь порядок структур? В каком порядке записали бы вы и почему? Есть ли какая-то документация, в которой описаны стандарты порядка объявления структур?