개발/Unreal

[Unreal] 자습서 3장 - 제어문(Blueprint)

by Majangnan 2023. 3. 17.

이번에는 중요한 개념인 조건문과, 반복문에 대해서 블루프린트로 예제를 수행해보겠다.

 

조건문

조건문은 if~else 와 같은 개념인데 블루프린트에서는 [Branch] 노드를 이용하여 조건문을 수행한다. 두 수를 비교하여 더 큰 값이 무엇인지 출력해주는 예제를 만들어 보겠다.

 

우선 Num0 과 Num1을 배치한 후 [integer > integer] 노드에 연결시켜준다. 그 후, [Branch] 노드를 생성한다.

 

 

대소 비교 결과값을 [Branch] 노드의 condition에 연결시켜준다.

[Branch] 노드는 입력된 조건 값이 참인지 거짓인지에 따라 다른 함수 노드를 실행할 수 있도록 만들어진 흐름 제어 노드이다. Branch 노드의 실행 핀을 [BeginPlay]와 연결하고 True 핀과 False 핀 모두에 [Print String] 노드를 생성해서 연결한다.

 

 

이렇게 되면 Num0이 Num1 보다 크면 True, 작으면 False 이고 각 값에 맞게 결과 문자열이 출력되는 것을 확인할 수 있다.

Num0 = 50, Num1 = 100 이므로 Num1 이 더 큽니다 라는 결과가 나온다.

 

 

조건식 안에 조건이 두 개 이상인경우도 있을 것이다. AND 연산자나 OR 연산자를 쓰는 경우인데 그럴 경우에는 각자의 조건식을 [AND Boolean], [OR Boolean] 노드에 연결하면 된다. 아래는 사용 예이다.

 

 

반복문

반복문은 흔히 아는 for loop 문이나 while 문을 생각하면 된다. 블루프린트에서는 [For Loop] 노드를 이용하여 반복문을 사용할 수 있다.

 

[For Loop] 노드는 좌측 입력 핀 쪽에 반복의 시작 번호와 반복의 종료 번호를 설정할 수 있도록 되어 있다. 시작 번호를 1로 하고 종료 번호를 10으로 하면 1~10까지의 10회 반복을 실행하는 것이다. 노드 우측에는 반복해서 실행할 함수를 연결하기 위한 Loop Body 실행 핀이 있고, 반복될 때마다 현재 몇 번째 반복인지를 알 수 있는 인덱스 출력 핀이 있다. 우측 하단에는 반복 실행이 모두 종료된 뒤 마지막에 별도로 실행할 함수가 있다면 연결할 수 있는 실행 핀이 있다.

 

 

Num0 변수의 값에 1씩 더한 결과를 출력하는 것을 10회 반복하고 출력하는 예제를 해보겠다. 반복 횟수가 10회가 되어야 하기 때문에 첫번째 인덱스에 0을 넣고 마지막 인덱스에 9를 넣어준다.

 

Num0의 값을 1씩 더하기 위해 앞 장에서 만들었던 Add 함수를 이용하도록 하겠다. Add함수와 Num0 을 get으로 배치하고 실행핀을 연결해준다. Num1 의 값에는 1씩 더해줘야 하기 때문에 1을 넣어준다.

 

 

반복될 때마다 Num0의 값이 증가되어 다시 저장이 되어야 하므로 Num0을 Set 으로 가져와서 Add 함수의 결과값을 연결해준다. 이렇게 되면 Num0에 값이 1씩 더해지고 더해진 값이 다시 Num0에 저장되는 계산이 10번 반복되기 때문에 결국 기존값에 10이 더해지게 된다. 마지막에는 결과값을 출력할 [Print String] 노드를 추가하여 연결해 주었다.

 

 

컴파일/저장을 하고 메인 에디터로 돌아가서 실행을 해보면 51부터 60까지 더해진 값이 출력되는 것을 볼 수 있다. 새로운 출력값이 기존 출력 위에 오기 때문에 가장 최근 출력이 가장 위이다.

 

 

 

 

이렇게 제어문 중에 가장 중요한 조건문과 반복문을 블루프린트를 통해 구현해보았다.

댓글