[Unity Course 2] 04. 주인공 캐릭터 제작 : 유니티 엔진의 개발 방식, C# 스크립트
위키북스 출판사 이재현 저자님의 '절대강좌! 유니티' 책을 참고하여 필기한 내용입니다.
유니티 엔진의 개발 방식
컴포넌트 기반의 개발 방식(CBD : Component Based Development)
: 소프트웨어 개발 방법론으로 독립적인 기능 단위로 컴포넌트를 제작한 다음 필요한 기능을 조립하는 방식

1. 게임 오브젝트명
2. 컴포넌트명
3. 컴포넌트 속성
컴포넌트의 오른쪽 맨위 점 세개를 누르면 Remove Component 로 삭제할 수도 있다.
데이터 기반의 개발 방식 (DOTS : Data Oriented Technology Stack)
: 컴포넌트 기반의 개발 방식과는 다르며 초보자가 바로 접하기에 난이도가 높다. 현재 개발 중인 기능이 많아 안정화 버전이 나올 때까지는 상용하기에 위험부담이 있다.
C# 스크립트
유니티는 C# 언어를 지원한다. 유니티 초기 버전에서는 자바스크립트 문법을 차용한 Unity Script를 지원했지만 2017 버전부터 변경됐다.
추천하는 코드 에디터
Visual Studio Code
JetBrains Rider
코드 에디터 변경

Edit - Preferences - External Tools - External Script Editor 를 Visual Studio로 설정해준다.
유니티의 기본 스크립트 에디터인 VSCode 를 사용한다면 코드 자동완성 기능을 사용하기 위해 VSCode에서 C# 확장 패키지를 설치해야된다.
C# 스크립트 생성

이름은 PlayerCtrl로 만든다.

만든 스크립트의 제목과 클래스명이 동일한지 꼭 확인한다.
만약 다르다면 오류가 나게된다.
파일 이름을 바꾸고 싶다면 클래스명도 같이 바꿔야 한다.
처음에는 바꾸기 쉽지만 여러 스크립트를 작성하고, 서로 상속해서 사용한다면 변경하기 어려울 수 있으니 추후에 수정하지 않도록 처음부터 잘 작성해야한다.
유니티의 주요 이벤트 함수
| 함수명 | 설명 |
| Awake | 스크립트가 실행될 때 한 번만 호출되는 함수 주로 게임의 상태 값 또는 변수의 초기화에 사용 Start 함수가 호출되기 전에 맨 먼저 호출 스크립트가 비활성화돼 있어도 실행된다 코루틴으로 실행 불가 |
| Start | Udate 함수가 호출되기 전에 한 번만 호출 스크립트가 활성화돼 있어야 실행 다른 스크립트의 모든 Awake가 실행된 이후에 실행됨 코루틴으로 실행 가능 |
| Update | 프레임마다 호출되는 함수로 주로 게임의 핵심 로직을 작성 스크립트가 활성화 되어 있어야 실행된다 |
| LateUpdate | 모든Update함수가 호출되고 나서 한 번씩 호출 Update 함수에서 전처리가 끝난 후 실행해야 하는 로직에 사용 스크립트가 활성화돼 있어야 실행 |
| Fixed Update | 물리 엔진의 시뮬레이션 계싼 주기로 기본값은 0.02초 발생하는 주기가 일정하다 |
| OnEnable | 게임 오브젝트 또는 스크립트가 활성화됐을 때 호출 주로 사용자 정의 이벤트 연결에 사용 코루틴 사용불가 |
| OnDisable | 게임오브젝트 또는 스크립트가 비활성화됐을 때 호출 이벤트 연결을 종료할 때 사용 코루틴 사용 불가 |
| OnGUI | 레거시 GUI 관련 함수를 사용할 때 사용 |
지금은 배우지 않은 내용이라 어렵게 느껴지지만 앞으로 자주 참고하게 될 표...
처음 읽는 분은 그냥 한번 가볍게 읽고 넘어가도록 하자.
이벤트 함수의 호출 순서
Awake - OnEnable - Start - Update - LateUpdate -FixedUpdate