티스토리 뷰

Unity

[Unity] C# 프로그래밍 기본문법

마시멜로co. 2019. 6. 4. 15:50

 

저번 글에서는 유니티의 기본 조작법에 대해 공부하였습니다.

 

이번 글에서는 유니티에 필요한 프로그래밍 언어인  C#에 대해 공부해보겠습니다

 

1. 변수

변수란 값을 저장하는 장소입니다. 변수에 저장한 값은 게임 도중 언제든지 접근하고 수정 가능합니다. 변수를 사용하는 목적은 원하는 값을 기억하고 다시 사용하기 위해서입니다. 

int money ;

변수를 선언하는 방법은 위와 같이 간단합니다.

 

컴퓨터는 어떤 데이터를 다룰지 자동으로 추측할 수 없기 때문에 사용할 데이터 종류를 표시하고 데이터의 이름을 붙혀줍니다.

여기서 int값은 integer(정수)의 약자로 소수점이 없는 숫자값을 의미합니다. 

 

다음과 같이 선언과 동시에 초깃값을 할당할 수도 있습니다.

int money = 500 ;

 

데이터의 종류 (변수타입) int 와 변수명 money 를 정한 후 대입연산자 = 이퀄 을 이용하여 값 500 을 할당합니다.

 

변수의 데이터 타입은 int 정수값 외에도 여러개가 있습니다.

bool on = false;
float height = 1.5f;
string name = "마시멜로";

 

변수의 타입은 다음과 같습니다.

 

  • float : 소수점을 가질 수 있는 실수를 저장하는 타입. float 타입의 숫자끝에는 반드시 f를 붙여야 합니다.
  • int : 소수점이 없는 정수를 저장하는 타입
  • bool : 참/거짓을 저장하는 타입. bool 타입은 true와 false만을 사용할 수 있습니다.
  • char : 하나의 문자 값을 저장하는 타입. char은 저장할 문자를 작은따옴표(' ')로 묶어야합니다.
  • string: 문자열을 저장하는 타입. string은 저장할 문자열을 반드시 큰따옴표로(" ")묶어야 합니다.

이외에도 double, var, long 등 기본 내장타입은 더 있으나 가장 많이 쓰는 타입만 정리하였습니다. 

2. 함수(메서드)

함수는 미리 정해진 동작을 수행하는 코드 묶음입니다. 어떤 처리를 미리 함수로 만들어두면 재사용 가능합니다. 이 함수를 통해 코드의 중복을 줄일 수 있습니다. 

 

동작 1. 플레이어가 빨간 포션을 먹어 체력을 10 상승함

동작 2. 플레이어가 파란 포션을 먹어 체력을 100 상승함

 

위 두 동작은 먹는 음식과 음식에 담긴 체력값만 다르다면 수백개를 수정해야합니다.이것은 코드의 길이도 길어지며 코드가 중복됩니다. 반복되는 코드를 함수로 대체하면 문제를 해결할 수 있습니다. 

 

플레이어가 음식을 먹는 기능에 관한 코드를 Eat()라는 함수로 묶어줍니다. 

void Eat(){
 플레이어가 어떤 음식을 먹기 
 체력값 상승
}

 

이렇게 중괄호 { } 로 묶인 영역을 함수의 바디 영역이라고 합니다. 이 바디 영역에 수행해야할 코드를 작성합니다.

이제 어떤 오브젝트를 먹는 동작을 수행할떄는 Eat() 함수를 사용하면 됩니다.

 

Eat () 함수를 사용하려면 어떤 오브젝트를 먹고 얼마의 체력이 올라가는지를 입력해야합니다. 그 값을 파라미터라고 하며 파라미터의 값은 다음과 같이 작성합니다.

void Eat(string food, int hp){
 food 를 먹는다
 체력값을 hp 만큼 상승시킨다.
}

  함수 입력부분은 외부로 부터 입력을 받아 사용합니다 . 

Eat("파란 포션", 40)

위 실행 결과를 다른곳에 전달할 필요가 없었지만 어떤 함수는 처리 결과를 다른곳에 전달할 필요가 있습니다. 

 

반환값이 없는 경우 void로 함수를 만들고 반환값이 있는경우 반환값의 타입을 작성하여 줍니다.

int GetRandomNumber(){
 int number = 0;
 number = 임의의 숫자;
 
 return number;
}

return 함수는 함수가 끝났을때 자신을 사용한 곳으로 되돌아가서 값을 전달하기 떄문에 다음과 같이 코드를 작성할수 있습니다.

int randomNumber = GetRandomNumber();

 

모든 함수는 return키워드를 가져야합니다. 단, void를 반환하는 함수는 컴퓨터가 암묵적으로 return값을 만들어 사용하므로 생략가능합니다.

 

3. 코딩해보기!

Unity Hub을 열어 새 프로젝트를 생성합니다.

 

프로젝트이름은 First Coding 으로 하겠습니다.

생성을 완료하였으면 C#스크립트 파일을 작성합니다. 프로젝트 창 왼쪽 상단의 create > c# script 클릭

 

생성되었으면 스크립트이름을 FirstCode로 변경 후 엔터버튼을 누릅니다. 생성한 FirstCode 스크립트 파일을 더블클릭하여 스크립트 파일을 엽니다. 

 

using 키워드를 이용하여 라이브러리의 경로를 지정하면 해당 라이브러리에 들어있는 코드를 가져와서 사용할 수 있습니다. 여기서 using 뒤의 경로를 네임스페이스(namespace)라고 합니다.

 

String() 는 게임이 시작될때 자동으로 한번 실행됩니다. 코드실행이 시작되는 시발점을 제공합니다.

스크립트를 다음과 같이 작성하고 저장 후 스크립트창을 닫거나 최소화하여 에디터 창으로 돌아갑니다.

완성된 스크립트를 동작하려면 오브젝트를 만들어 스크립트를 오브젝트에 연결해야합니다. 빈 게임오브젝트를 생성하고 작성한 FirstCode를 붙입니다.

 

Hierachy창에서 create -> create Empty를 클릭합니다.

생성한 Hierahcy 창의 GameObject을 선택한 후 project창의 FirstCode 스크립트를 GameObject의 Inspector창에 드래그앤드롭합니다.

플레이버튼을 눌러 플레이모드에 진입합니다. 아래와 같이 console창에 Hello World라는 문구가 출력된것을 확인할 수 있습니다. 

 

5 . 코딩 규칙

주석은 컴퓨터가 처리하지않는 영역입니다. 그래서 보통 개발자들은 작성한 코드에대한 설명을 씁니다. 또는 코드를 비활성화시키는 용도로 사용하기도 합니다. 

 

  • // 주석할 내용 : 한줄 주석  
  • /*  주석할 영역 */ : 여러줄 주석

콘솔에 메시지를 출력할떄는 Debug.Log() 메서드를 사용합니다. 

Debug.Log("출력할 내용");

코드가 끝나면 반드시 세미콜론(;)을 코드 끝에 붙입니다.  

using에 네임스페이스를 지정하면 해당 네임스페이스에 들어있는 코드를 스크립트로 불러와 유니티가 제공하는 여러 기능을 활용할 수 있게 됩니다.

 

이번글에서는 유니티 프로그래밍에 필요한 기본적인 문법을 알아봤습니다.

 

다음글에서는 제어문에 대해 공부해보겠습니다.

 

수고하셨습니다! 

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크