반응형
게이트 (Gate) 및 멀티 게이트 (Multi-Gate) 노드 설명
이제 마지막 흐름 제어(Flow Control) 노드에 대해 이야기해 봅시다. 블루프린트를 클릭하고 레벨 블루프린트를 열어 보겠습니다.
오늘 다룰 내용은 바로 게이트 (Gate) 노드와 멀티 게이트 (Multi-Gate) 노드입니다.
게이트 (Gate) 노드

- Begin Play (게임 시작) 노드를 만듭니다.

- 실행 핀(Execution pin)에서 드래그하여 Gate를 검색하고 노드를 만듭니다. (게이트와 멀티 게이트 노드를 볼 수 있습니다.) Gate 노드부터 시작하겠습니다.

- 게이트 노드는 성의 문(Gate)이라고 상상할 수 있습니다.
- 문을 닫을(Close) 수도 있고 열 (Open) 수도 있습니다.
- 문이 열려 있을 때만 다음의 Exit (종료) 실행 핀에 연결된 코드가 실행됩니다.
- 문이 닫혀 있으면 이 코드는 실행되지 않습니다. 이것이 이 노드의 주요 원리입니다.
- 테스트를 위해 E 키 이벤트를 사용해 보겠습니다.
- Begin Play에서 연결을 끊고, E 키보드 이벤트를 만듭니다.
- E 키를 누를 때 게이트를 통해 코드가 실행되도록 연결합니다.
- Exit 실행 핀에 Print String 노드를 연결하고 임시로 "Hello"라고 출력해 봅시다.
- 테스트 및 Start Closed (닫힌 상태로 시작) 설명
- Play를 누르고 E 키를 눌러도 아무 일도 일어나지 않습니다.
- 이유는 게이트(Gate)가 닫힌 상태로 시작 (Start Closed) 하기 때문입니다. (노드에서 Start Closed 옵션을 확인할 수 있습니다.)
- 게이트가 닫혀 있으면 Exit 쪽 코드를 실행할 수 없습니다.
- Start Closed를 비활성화합니다. (게이트가 열린 상태로 시작)
- 컴파일하고 Play를 누른 후 E 키를 누르면 "Hello"가 출력됩니다. 이제 게이트가 열린 것입니다.
- 게이트 열고 닫기
- 게이트를 사용하는 예시는 게임이 일시 정지(Paused) 되었을 때처럼, 특정 코드가 더 이상 실행되지 않기를 원할 때 사용할 수 있습니다. 게이트를 닫고, 원하는 시점에 다시 열 수 있습니다.
- Open (열기) 핀과 Close (닫기) 핀을 사용하여 게이트를 제어할 수 있습니다.
- **커스텀 이벤트(Custom Event)**를 두 개 만듭니다.
- 하나는 Open Gate라고 이름 짓고 Open 핀에 연결합니다.
- 다른 하나는 Close Gate라고 이름 짓고 Close 핀에 연결합니다.
- R 키 이벤트를 만들고 Open Gate 이벤트를 호출(Call) 합니다. (R 키를 누르면 게이트가 열립니다.)
- T 키 이벤트를 만들고 Close Gate 이벤트를 호출합니다. (T 키를 누르면 게이트가 닫힙니다.)
- (참고: R 키를 Open 핀에 바로 연결할 수도 있지만, 게임 개발에서는 보통 이처럼 커스텀 이벤트를 통해 제어하는 경우가 많습니다.)

- 게이트 노드 테스트
- 컴파일하고 Play를 누릅니다. Start Closed를 비활성화했으므로 게이트는 처음에 열려 있습니다.
- E 키를 누르면 "Hello"가 출력됩니다. (게이트 열림)
- T 키를 누릅니다. (게이트 닫힘)
- E 키를 다시 누르면 아무 일도 일어나지 않습니다. (게이트 닫힘)
- R 키를 누릅니다. (게이트 열림)
- E 키를 다시 누르면 "Hello"가 출력됩니다. (게이트 열림)

- Toggle (전환) 기능
- 게이트 노드에는 Toggle 핀도 있습니다.
- R 키를 Toggle 핀에 연결하고, 커스텀 이벤트를 삭제합니다. (Start Closed는 비활성화된 상태)
- Play를 누릅니다. E 키를 누르면 실행됩니다. (시작 시 열림)
- R 키를 누릅니다. E 키를 누르면 실행되지 않습니다. (닫힘으로 전환)
- R 키를 다시 누릅니다. E 키를 누르면 다시 실행됩니다. (열림으로 전환)
- Toggle은 게이트의 상태를 닫힘에서 열림으로, 또는 열림에서 닫힘으로 전환합니다.
멀티 게이트 (Multi-Gate) 노드
이제 Multi-Gate 노드를 살펴보겠습니다.
- Multi-Gate 노드를 검색하여 만듭니다.
- 이 노드는 게이트 노드와 원리는 같지만, 여러 개의 출력(Output) 실행 핀을 가집니다.
- E 키 이벤트를 Multi-Gate의 Enter 핀에 연결합니다.
- Print String 노드를 4개 만듭니다.
- "Hello 1"
- "Hello 2"
- "Hello 3"
- "Hello 4" (노드에 4개의 출력 핀이 필요합니다. 핀이 부족하면 노드 내부에서 추가할 수 있습니다.)
- 이 4개의 Print String 노드를 각각의 출력 실행 핀 (Out 0, Out 1, Out 2, Out 3)에 순서대로 연결합니다.

- 순차 실행 (Sequential Execution)
- 컴파일하고 Play를 누릅니다.
- E 키를 누르면 "Hello 1"이 출력됩니다.
- E 키를 다시 누르면 "Hello 2"가 출력됩니다.
- E 키를 다시 누르면 "Hello 3"이 출력됩니다.
- E 키를 다시 누르면 "Hello 4"가 출력됩니다.
- Multi-Gate 노드는 활성화될 때마다 **Start Index (시작 인덱스)**에서부터 시작하여 다음 순서의 핀에 연결된 코드를 실행합니다.
- Start Index는 어떤 핀(출력)부터 시작할지 선택합니다. 기본값은 -1(또는 0부터 시작)이므로 항상 첫 번째(0) 핀부터 시작합니다.
- 만약 Start Index에 2를 입력하고 Play를 누른 후 E 키를 누르면 "Hello 3"부터 출력됩니다. (인덱스는 0부터 시작하므로 인덱스 2는 세 번째 핀입니다.)
- 실행 중지 (Stop after last)
- E 키를 눌러 Hello 4까지 모두 출력한 후, E 키를 다시 누르면 아무 일도 일어나지 않습니다.
- Multi-Gate 노드는 마지막 실행 핀까지 코드를 모두 실행하면 멈춥니다.
- Loop (반복) 기능
- 코드를 처음부터 다시 실행하고 싶다면 Loop 옵션을 활성화해야 합니다.
- Loop를 활성화하고 Play를 누릅니다.
- E 키를 눌러 Hello 1, 2, 3, 4를 모두 출력합니다.
- E 키를 다시 누르면 코드가 처음부터 다시 반복(Loop) 되어 "Hello 1"이 다시 출력됩니다.
- Is Random (무작위 실행) 기능
- Loop를 끄고 Is Random 옵션을 활성화합니다.
- Is Random은 여러 실행 핀 중에서 **무작위(Random)**로 하나의 핀을 선택하여 코드를 실행합니다.
- Play를 누르고 E 키를 누릅니다. (예: "Hello 4" 출력)
- E 키를 다시 누릅니다. (예: "Hello 2" 출력)
- 실행할 때마다 임의의 출력 핀이 선택됩니다.
- Loop가 활성화되지 않으면, 모든 핀이 한 번씩 선택된 후에는 더 이상 실행되지 않습니다.

- Reset (리셋) 기능

-
- Loop가 꺼져 있을 때, 코드가 끝난 후 처음부터 다시 실행하려면 Reset 핀을 사용해야 합니다.
- R 키 이벤트를 만듭니다.
- 커스텀 이벤트를 만들고 이름은 Reset Gate라고 합시다.
- Reset Gate 이벤트를 Multi-Gate의 Reset 핀에 연결합니다.
- R 키 이벤트에서 Reset Gate 이벤트를 호출합니다.

-
- Play를 누르고 E 키를 눌러 코드를 끝까지 실행합니다. (더 이상 실행되지 않음)
- R 키를 누릅니다. (게이트 리셋)
- E 키를 다시 누르면 코드가 처음부터 다시 실행됩니다.
요약:
- Gate 노드는 Open과 Close 핀을 통해 하나의 코드가 실행될지 여부를 제어합니다.
- Multi-Gate 노드는 여러 개의 코드를 순서대로(Sequential), 무작위로(Random), 또는 반복(Loop) 여부를 설정하여 실행할 수 있도록 제어합니다.
반응형
'Unreal Engine' 카테고리의 다른 글
| Unreal Engine 열거형(Enumeration) 비교하기 (0) | 2025.10.29 |
|---|---|
| Unreal Engine 열거형(Enumeration) 소개, 생성 및 사용하기 (0) | 2025.10.29 |
| Unreal Engine "Do Once" 및 "Do N" 노드 설명 (0) | 2025.10.27 |
| Unreal Engine While Loop (While 반복문)의 이해와 위험성 (0) | 2025.10.27 |
| Unreal Engine 반복문(Loops)의 이해와 활용 (0) | 2025.10.27 |