함수는 하나 이상의 작업을 수행하고 결과를 반환하는 코드의 집합입니다. 함수를 호출하면 코드들을 순차적으로 진행합니다. 이 함수들은 값을 입력 받기도 하고 값을 반환하기도 합니다.
1.void 함수
void 함수는 반환 값이 없습니다. void함수는 데이터를 처리하고 결과 값을 반환하지 않습니다. 단순한 작업을 처리하는데 주로 사용됩니다.
void Print(string text){
Debug.Log(text+”입니다”);
}
이 함수를 호출할 때 string타입의 값을 입력시, 해당 값 뒤에 “입니다”를 붙여서 출력해줍니다.
예를 들어 함수를 호출할 때
Print(“hi”);
을 실행하면 “hi입니다.” 를 출력합니다. string타입의 값은 “”로 해당 값을 묶어줘야 string으로 인식되며 string이 아닌 경우 변수명 등으로 체크합니다.
만약 해당 함수 밖에 public string hi = “안녕”; 이라고 선언했을 때
Print(hi);
를 실행하면 “안녕입니다”가 출력됩니다.
이런식으로 데이터 값을 반환하지 않고서 원하는 결과가 나온다면 void함수로 만듭니다. 기초강좌단계에서는 보통 Print, Debug.log 같이 내부값을 들여다보는 함수로 예시를 드는 편입니다.
2.반환 값이 있는 함수
반환 값이 있는 함수는 선언한 유형 값을 반드시 반환합니다.
예를 들어서 public int Sum(int a, int b) 라는 함수가 있다면 그 함수안에는 반드시 int값을 return해야 합니다.
public int Sum(int a, int b){
int c = a+b;
return c;
}
이 함수는 Sum이란 함수에 int값 2개를 넣어주면 그 값을 합한 뒤에 그 값을 반환합니다. Sum(3,5); 를 실행시 8을 반환합니다. 그 8이란 값을 어떻게 넣을지는 함수를 호출할 때 정의해야 합니다. 함수가 값을 반환해도 활용하지 못한다면 사실상 쓸모가 없게 됩니다.
위에서 만들었던 Print(); 함수와 사용하게 된다면
Print(Sum(5,3));
으로 사용할 수 있게 됩니다. 하지만 Print()는 string값만을 받는데 Sum에선 int값을 반환하기 때문에 유형이 맞지 않아서 사용할 수 없습니다. 이때는 ToString(); 함수를 통해 int값을 string으로 변경할 수 있습니다.
Print(Sum(5, 3).ToString());으로 사용할 수 있습니다.
따라서 결과 값은 “8입니다.”가 출력됩니다.
함수는 프로그래밍에 있어서 가장 많이 사용되는 기능입니다.
변수, 함수, 조건문, 반복문 이 4가지와 유니티 엔진의 캐릭터 움직임, 미사일 발사, 물리와 충돌적용 같은 기능정도만 알아도 충분히 게임을 제작할 수 있습니다. 퀄리티는 조잡하더라도 슈팅, 플래포머, 런 등의 게임을 제작할 수 있습니다.