less than 1 minute read

[System.Serializable]

유니티의 속성 중 하나로 이 속성을 클래스나 구조체 위에 선언하게 되면 해당 타입이 직렬화 가능한 형태가 된다. 직렬화 가능한 클래스나 구조체로 만들어진 객체는 상태를 저장하고 복원할 수 있다. 이를 이용해 게임을 종료한 후에도 이전 상태를 보존할 수 있다

start, awake

awake 먼저 호출 그다음 start가 호출된다.

awake는 항상 start 함수 이전 및 프리팹 인스턴스화 직후 호출된다.
start는 첫 번째 프레임의 업데이트 전에 start가 호출된다.

awake는 모든 오브젝트가 초기화되고 호출되기 때문에 다른 스크립트와 연결을 보장할 수 있다. 다른 스크립트를 많이 참조하는 프로젝트일수록 awake를 쓰는 것이 좋다. Awake는 start와 달리 스크립트가 비활성화 상태일때도 호출된다. 초기화가 끝난 후 다음 순서로 실행할 필요가 있는 작업은 Start

awake를 사용해 객체 자체 참조 및 변수 초기화
start는 다른 객체 혹은 그 컴포넌트에 접근하는 찹조를 생성
OnEnable은 컴포넌트 또는 연결된 객체가 활성화 될 때마다 호출

Awake -> OnEnable -> Start -> FixedUpdate -> Update -> LateUpdate -> OnDisable -> OnDestroy