목표

  • 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# 컨벤션에 유의하여 계산기 예제를 구현해보자.

+ Recent posts