목표
- Unity에서 사용하는 자료형에 대해 알아본다.
변수(Variables)
- 변수는 변할수 있는 값으로, 상수와는 반대가 되는 개념이다.
- 예를들어, 게임에서 총의 탄창 상태를 비어있는, 꽉차있는 2가지로 정의한 경우 EMPTY(0), FULL(1)로 상수를 정의할 수 있을 것이다.
- 이때 총알의 갯수는 bulletsCount로 최대 50개, 최소 0개 처럼, 변할 수 있는 값을 변수라 한다.
변수의 자료형
- 이 변수는 실수, 정수, 부호, 문자 등의 타입을 가진다.
- 세부적으로는 int(정수), float(실수), double(실수), char(문자), string(문자열), bool(부호), Structs(Vector3, Quaternion) 등이 있다.
- 또한 var 라는 자료형을 많이 사용한다. 이는 위와 같이 명시적으로 타입을 설정하는 것이 아니라 암시적으로 변수의 타입을 변환해서 사용하는 방법이다. (C# 참고)
- 다만, private, public 등 클래스의 필드 데이터로 사용될 수 없고, 반환값으로 사용도리 수 없으며, parameter로 사용될 수 없다.
- 또한 null로 초기화 될 수 없으며, 초기화 값과 다른 타입의 값을 가질 수 없다. 다만, 참조타입의 경우 null을 할당할 수는 있다.
- 또한 오른쪽 값 할당이 명확하지 않은 경우, 사용하지 않는 것이 좋다.
함수(Functions)
함수의 경우 리턴형, 함수 이름, 파라미터로 이루워져 있다.
다음은 플레이어의 번호를 이용하여 이름을 구하는 함수이다.
함수 이름 : GetPlayerName
파라미터로 : (정수형) playerNumber
리턴 값 : (문자열) String
String GetPlayerName(int playerNumber) { // blah blah blah.. (get player name by using number) return "playerName"; }
위와 같은 기초적인 지식은 C, C++, C#, Java 페이지를 참고한다. (여기서 프로그램의 기초를 설명하지는 않는다.)
Unity에서 Script를 통해 Class를 생상하면, 기본적으로 MonoBehaviour를 상속 받게 된다.
이 클래스를 상속받은 경우 Awake, Start, Update, FixedUpdate, LastUpdate 등 미리 정의된 몇가지 함수를 사용할 수 있다.
Conventions
언어를 작성할때는 Convention은 매우 중요하다.
이는 소스코드를 약속된 포맷으로 작성하여 누구나 읽기 쉬운 코드를 만들기 위한 프로그래머들끼리 약속이며 이 약속은 반드시 지켜야 한다.
중요 컨벤션으로는 중괄호의 위치, 변수 이름, 함수 이름, 들여쓰기가 있다.
중괄호를 아래 처럼 사용하는 경우는 보통 Java의 Convention으로, 위 소스와 비교해보면 차이가 있다. (Unity의 경우 visual studio on mac을 기준으로 Control + i 를 누르면 Convention에 맞게 소스코드를 정렬해준다.)
String GetPlayerName(int playerNumber) {
// blah blah blah.. (get player name by using number)
return "playerName";
}
변수 명의 경우, 회사마다 규약이 다르지만 Facebook을 참고해보면 private는 소문자, public은 대문자로 심플하게 구별하고 있다.
또 변수 명명법의 경우, 파스칼, 카멜, 스네이크(GNU), 헝가리언 등이 있다.
파스칼 케이싱은 클래스, 열거형, 이벤트, 메서드 등의 이름을 만들 때에는 대문자로 시작하는 변수명을 사용하며, 복합어일 경우 중간에 시작하는 새로운 단어는 대문자로 적는 방식을 말한다.
Unity에서 다른 네이밍 방식은 개인적으로 권장하지 않는다. 특히 헝가리언은 권장하지 않는다.
Syntax
- Syntax는 함수의 시작과 끝에 중괄화를 넣거나, 객체의 요소에 접근할때 .(dot)을 사용하거나, 명령어 마지막에 세미콜론을 넣는 등의 언어가 정해놓은 문법을 말한다. (Syntax는 언어마다 그 규칙이 다르다.)
Comment
- 주석은 내가 구현한 의도를 소스 코드에 설명하는 기능이다. 스크립트의 동작과는 무관하며, 단순 설명의 용도로 사용된다.
- 주석은 //와 /* 등 2가지 방식으로 사용할 수 있다.
/* 여러줄에 걸처
/* 소스에 대한 설명을
/* 설명을 표시하고 싶은 경우
*/
String GetPlayerName(int playerNumber)
{
// 한줄에 내용을 표시하고 싶은 경우
return "playerName";
}
예시
- 다음에서는 C# 컨벤션에 유의하여 계산기 예제를 구현해보자.
'프로그래밍 > Unity C#' 카테고리의 다른 글
[Unity] Tutorial 05 - Beginner Gameplay Scripting (Loop) (0) | 2019.05.27 |
---|---|
[Unity] Tutorial 05 - Beginner Gameplay Scripting (IF Statements) (0) | 2019.05.27 |
[Unity] Tutorial 05 - Beginner Gameplay Scripting (Scripts as Behavior Components) (0) | 2019.05.27 |
[Unity] Tutorial 04 - Essential Unity Concepts (Layer) (0) | 2019.05.14 |
[Unity] Tutorial 04 - Essential Unity Concepts (Tag) (0) | 2019.05.14 |