유니티

유니티 C# 프로그래밍 기초 - 함수 새로 선언하기

nock_ji 2022. 4. 5. 16:33

유니티 C# 프로그래밍 기초

 

 

[ 함 수 ] & [ 선언 및 호출 ]

 

 


[ 함 수 ]

기능을 편리하게 사용하도록 구성된 영역

 

 

[ 함수 만들기 / 선언 및 호출 ]

 

[한정자][반환 형식][메서드 이름]([매개 변수])
{
	// 실행코드
    
    return [반환형식 결과];
}

 

· 한정자 : 공개 public / 일부 공개 protected / 비공개 private 

한정자가 없으면 자동으로 private가 지정됩니다

 

· 반환형식 : void / int / string / class 등

 

· 매개변수 : 없거나 여러 개 일 수도 있습니다

 

return은 함수가 값을 반환할 때 사용합니다

*함수 앞에 반환형식(자료형)이 있다면 반드시 return이 필요합니다 

 

 

 

 

ex 1)

static int intPuls (int a, int b)
{
	int result = a+b ;
    	return result;
}

 

intPlus 메서드로 int형 매개변수를 두 개 선언하였습니다

두 매개변수의 합을 리턴하는 메서드까지 확인할 수 있습니다

 

 

 

ex 2)

static void Main (string[] args)
{
	int nPlus = inPlus (10,20);
    	Console.WriteLine (nPlus);
}

 

voidreturn값이 없을 경우 사용합니다

static으로 선언된 메서드 Main가 있고, Console 안에 WriteLine이라는 함수로 출력을 합니다.

C#에서 가장 기본적으로 선언하는 방식입니다

 

 


 

그럼 유니티에서 함수를 새롭게 선언해보겠습니다

 

앞의 기본형식대로 새롭게 만들 함수 앞에는 반환형식을 적어줍니다

새로운 함수가 받을 변수를 소괄호 안에 적습니다

 

int Heal (int crrentHealth)
{
    crrentHealth += 10;
    Debug.Log("치료를 받았습니다" + crrentHealth);
    return crrentHealth;
}

 

이 함수만으로는 아무것도 출력되지 않습니다

Heal 함수에서 선언한 내용을 void Start에서 가져다 써야합니다

 

 

 

void Start()
{
	int health = 30;
   	health = Heal(health);
}

 

Heal 함수는 health라는 매개변수를 가집니다

.

.

.

.

결과

 

반환 값이 있는 함수를 선언해보았습니다

Heal 함수를 불러와 void Start에서 사용할 수 있었습니다

 

 


 

 

void 형식 함수를 선언해보겠습니다

 

 

여기서 void Healvoid Start와 다른 함수이므로 Heal내에서 다시 health를 선언해야합니다. 

그렇지 않으면 오류가 발생합니다. 또는 health함수 밖에서 선언해야합니다

 

· 지역 변수 : 함수 안에서 선언된 변수

· 전역 변수 : 함수 바깥에 선언된 변수 

 

현재 health는 지역변수 입니다.

 

 

 

->

.

.

결과

 


 

 

문자열 함수 선언 (feat. if문)

 

 

string형 (문자열) 함수 안에 monsterLevel 매개변수를 선언했습니다.

문자열을 출력하기 위해 result 변수를 선언하고, if - else 문을 작성했습니다.

 

levelmonsterLevel 보다 크거나 같으면, "이겼습니다"를 출력하고, 그렇지 않으면 "졌습니다"를 출력합니다.

마지막에는 return으로 값을 반환합니다

 

 

 

 

void Start 함수에서 Battle 함수 가져다 쓰기 (feat. for문)

 

용사의 레벨이 몬스터레벨보다 높은 경우 각각 문자열을 출력하는 Battle함수를 선언했는데, 이를 출력할 수 있도록 for문을 사용합니다

 

배열 및 for문에 관한 내용은 이전 게시물을 확인하면 됩니다.

 

index가 0, 1, 2일 때 각각 내용을 출력합니다. 

'용사는 monsters[0]에게 Battle 함수에서의 monsterLevel[0]의 결과값'

 

monsterLevel[0]은 1이고, 100보다 작기 때문에 이겼다는 내용이 출력됩니다.

.

.

.

.

결과

 

 

 


 

다음에는 class 클래스에 대해 다뤄보도록 하겠습니다