Variables(변수): Object의 값이나 Object의 참조에 해당. (소문자로 시작)
Script 상단에 변수를 선언하는 것으로 시작. public 혹은 private 변수로 선언하고, 뒤에 유형과 변수 이름이 부여됨.
public 변수: 스트립트에서 정의후에 Unity Inspector뷰에서 접근이 가능. 다른 Object에서도 접근 가능. 단, 문제가 생길 경우 코드베이스 전체를 살펴보고 문제의 위치를 찾아야 하는 단점이 있음.
private 변수: 해당 script 및 해당 class를 통해서만 접근 가능. 코드를 좀 더 깔끔하게 할 수 있고, 디버깅과 유지관리가 쉬워지는 장점이 있음. 단, Inspector 뷰를 Debug 모드로 바꾸면 Run mode시 확인가능.
변수를 정의할 때 중요한 또 한가지 요소는 Type이다. Type은 변수가 메모리에 포함하는 값의 종류를 정의한다. (위의 이미지에서 myLight 변수는 Light 타입으로 정의 됨)
변수의 이름은 숫자로 시작하거나 공백을 포함 할 수 없음. (예: myLight)
Functions(기능): 변수들을 조정하는 코드. Function은 대문자로 이름이 시작됨.
Unity에서는 아래와 같이 자동으로 실행되는 Function이 있음.
Awake: GameObject가 활성화될 때 한 번만 호출. GameObject가 비활성화 상태인 경우 활성화될 때까지 호출되지 않지만, GameObject는 활성화/Component는 비활성화 일 경우에도 호출됨.
Start: GameObject가 활성화되면 호출되나, Awake와는 달리, Component가 활성화 되어야 호출됨.
Update: Frame당 한 번 호출됨. 애니메이션이나 Ai, input detection 등 계속해서 작동해야 되는 로직을 정의. Frame당 수행하는 로직이 오래 걸리면 Update 주기가 달라짐.
FixedUpdate: Update와 비슷하나, 고정된 주기(0.02초) 마다 호출됨.
LateUpdate: Update와 비슷하나, 프레임 끝에 호출되는 함수. (예: 게임 캐릭터를 이동시키려는데 다른 캐릭터와 부딪혀 의도하지 않은 위치로 움직이는 경우, 카메라를 캐릭터와 동시에 움직이면 흔들림이 발생하고 카메라가 원래 있어야 할 자리로 이동하지 않는 경우에 유용하게 사용됨) 별도의 Loop 처럼 작동하여 유용하게 사용될 수 있음.
함수는 대문자로 시작하며, 함수의 맨 앞 부분에 반환된 함수 유형을 기입하고, 함수의 이름과 괄호 안의 매개변수(있는 경우) 순으로 작성한다.
함수는 일반적으로 계산을 수행한 후, 값을 반환한다. 단, 함수 앞에 void 타입을 선언하면 아무것도 반환되지 않는다.
Classes(클래스): 변수와 함수의 집합. Class의 이름과 C# 스크립트의 파일 이름은 반드시 일치해야 함.
Custom class를 생성했을 경우, [System.Serializable]을 입력하여 클래스를 직렬화해야, Unity가 Inspector 뷰에서 살펴볼 수 있는 단순한 데이터로 전환한다.
'Unity > 02.Scripting' 카테고리의 다른 글
Trigger 충돌 함수 (0) | 2021.01.14 |
---|---|
Input Manager (키보드 입력, 마우스 클릭, 조이스틱 등) (0) | 2020.08.11 |
Unity Scripting References 스크립팅 관련 자료 (0) | 2020.08.10 |
Normalized Vector (정규화 벡터) (0) | 2020.08.03 |
자료형 설명 (0) | 2020.08.02 |
댓글