유니티/기초

유니티 입문 - 기본 문법(4) 제어문(if문)

무직백수취업준비생 2021. 6. 7. 06:03
728x90
반응형

기본적으로 코드는 위에서 아래로 실행하지만

 

제어문을 사용하면 조건에 따라 특정 코드의 실행 여부나 실행 순서를 변경할 수 있습니다.

 

제어문에는 분기를 결정하는 조건문(if문)과 수행을 여러 번 반복하는 반복문(for문, while문)이 있습니다.

 

 

게임에서 특정 조건을 만족하면 숨겨진 엔딩이 나오는 등, 조건과 선택에 따라 분기가 나눠지는 경우가 많습니다.

 

이때 if문을 사용합니다. if문은 주어진 조건을 평가하고 조건의 결과가 true나 false 중 하나가 되는 변수나 표현식입니다.

 

평가한 조건이 true면 if문 아래 중괄호로 묶인 영역을 실행하고, false였다면 무시하고 넘어갑니다.

 

기본적인 if문 구조는 다음과 같습니다.

 

if(조건) {
	//if 문 블록
	//조건이 참이면 이곳에 있는 코드를 실행
}

 

이번에는 if문을 사용하여 호감도에 따라 서로 다른 엔딩에 도달하는 예제를 만들어 보겠습니다.

 

프로젝트 창에서 스크립트를 열고 코드를 작성합니다.

 

 

이후 유니티에서 실행해봅니다.

 

실행해보면 콘솔창에서 굿엔딩은 출력되지만 배드엔딩은 출력되지 않습니다.

 

love가 100이므로 love<=70 조건에 부합하지 않기 때문입니다.

 

 

 

if문 블록 끝에 else문을 덧붙여 조건이 거짓일 때 실행할 처리를 구성할 수 있습니다.

 

방금 예제를 수정해 보겠습니다.

 

love가 50이기에 조건 love>70은 거짓이 됩니다. 따라서 실행해보면 if문 블록은 무시되고,

 

else문으로 처리되어 배드앤딩이 출력됩니다.

 

 

else if문을 사용하면 else문에 조건을 덧붙일 수 있습니다. else if문을 사용하여

 

위 예제에서 분기를 더 상세하게 나눠보겠습니다.

 

 

love값은 80으로 설정되어있습니다. 그러므로 처음 조건문 if(love>90)은 만족하지 못하고 무시하게 됩니다.

 

이후 else if(love>70)으로 넘어가는데, 해당 조건을 만족하므로 굿엔딩을 출력하게 됩니다.

 

 

if문에서 조건을 비교할 때 둘 이상의 조건을 함께 사용할 수 있습니다.

 

"a는 30보다 크면서 동시에 50보다 커야 한다" 라는 조건이 필요할 수도 있습니다.

 

이런 경우 논리 연산자를 사용해야합니다.

 

논리 연산자를 사용하여 if문 예시를 작성해보겠습니다.

 

 

처음 if문의 조건은 age가 7보다 와 age가 18보다 작다 이 두 가지 조건을 모두 만족해야 결과가 참입니다.

 

그리고 age를 11로 설정해놨기에 해당 예제에서 참으로 작동합니다.

 

두 번째 if문의 조건은 age가 13세보다 작다와 age가 70보다 크다 이 두 가지 조건 중 하나만 만족해도 참입니다.

 

age는 11로 설정해있기에 age >70은 만족하지 못하지만 age <13을 만족하기에 두 번째 if문 블록도 동작합니다.

 

 

그렇기에 실행해보면 if문 두 가지 모두 실행됐음을 확인할 수 있습니다.

 

 

728x90
반응형