반응형
변수를 활용한 게임 로직 예제: 코인 획득하기
이제 지금까지 배운 변수들을 어떻게 활용하여 로직을 구성하는지에 대한 예제를 살펴봅시다.
1. 시나리오 설정
플레이어가 코인 위를 지나가 코인을 **획득(loots)**하려 할 때, 다음 두 가지 조건을 확인해야 합니다.
- 플레이어가 코인을 담을 배낭을 가지고 있는가?
- 이 배낭에 획득한 코인을 담을 충분한 공간이 있는가?
두 조건이 모두 충족되면 코인을 획득하고, 그렇지 않으면 적절한 메시지를 화면에 표시할 것입니다.
2. 첫 번째 조건: 배낭 소유 여부 확인

- 배낭 변수 생성: 먼저, 플레이어가 배낭을 가지고 있는지 확인하기 위해 **'Has Backpack' (배낭 소유 여부)**라는 불리언(Boolean) 변수를 만듭니다. (불리언은 참(True) 또는 거짓(False) 값을 반환합니다.)
- Branch 연결: Event BeginPlay에 Branch (분기) 노드를 연결하고, 'Has Backpack' 변수를 조건 핀에 연결합니다.

- False 경로 (배낭 없음):
- 현재 **'Has Backpack'**이 **체크 해제(False)**된 상태라고 가정해 봅시다.
- **'Notice Message' (알림 메시지)**라는 Text (텍스트) 변수를 만들고 Alt 키를 누른 채 Set (설정) 노드로 가져옵니다.
- Branch 노드의 False 핀을 이 Set 'Notice Message' 노드에 연결하고, 메시지를 **"You don't have a backpack yet. (아직 배낭이 없습니다.)"**라고 설정합니다.
- 이어서 Print String 노드를 연결하여 이 메시지를 화면에 출력합니다. (예: 10초 동안 표시)

3. True 경로: 코인 획득 및 총량 업데이트

플레이어가 배낭을 가지고 있다면(True), 코인을 추가하고 총량을 업데이트합니다.
- 코인 총량 가져오기: 'Amount of Coins' (코인 수량, 200) 변수를 Get (가져오기) 노드로 가져옵니다.
- 코인 추가: 플레이어가 5 코인을 획득했다고 가정하고, **덧셈 연산자(+)**를 사용하여 5를 더합니다. (200 + 5 = 205 코인).
- 새 값 설정: Alt 키를 누른 채 Set 'Amount of Coins' 노드를 가져와, 연산 결과인 205를 새로운 값으로 설정합니다. 이제 변수 값이 205로 업데이트되었습니다.
4. 두 번째 조건: 배낭 공간 확인

이제 코인을 배낭에 넣기 전에 공간이 충분한지 확인해야 합니다.
- 배낭 개수 변수: **'Number of Backpacks' (배낭 개수)**라는 정수(Integer) 변수를 만들고 값을 2로 설정합니다.
- 배낭당 코인 수 계산: **Amount of Coins (205)**를 **Number of Backpacks (2)**로 **나눗셈(/)**하여 배낭당 코인 수를 계산합니다. (약 102.5).
- 용량 확인: 이 결과값(102.5)에서 핀을 당겨 'Greater Than (>)' 연산자와 두 번째 Branch 노드를 연결합니다.
- 조건 설정: 우리는 배낭당 200 코인이 있다면 배낭이 꽉 찬다고 가정합니다. 따라서 **"배낭당 코인 수가 200보다 큰가?"**라는 조건을 만듭니다. (205 / 2 = 102.5. 102.5는 200보다 크지 않으므로, 이 조건의 결과는 False입니다.)
- False 경로 (공간 충분): 이 경우 False는 **'공간이 충분하다'**는 의미이므로, False 핀을 Set 'Notice Message' 노드에 연결하고 메시지를 **"You have enough space. (충분한 공간이 있습니다.)"**로 설정합니다.
- True 경로 (공간 부족): True 핀을 Set 'Notice Message' 노드에 연결하고 메시지를 **"You don't have enough space. (충분한 공간이 없습니다.)"**로 설정합니다.
- 출력: 두 Set Message 노드 끝에 Print String을 연결하여 최종 메시지를 출력합니다.

5. 코드 정리 및 최종 확인

- 실행 확인: 현재 설정(배낭 있음, 코인 205개, 배낭 2개, 용량 200)에서는 "You have enough space." 메시지가 출력됩니다.
- 변수 사용: 이 예시를 통해 Get, Set, 덧셈/나눗셈 연산자, 그리고 **Branch (분기)**를 사용하여 복잡한 게임 로직을 구성하는 방법을 알 수 있습니다.
- 주석(Comment): 코드를 선택하고 C 키를 눌러 주석을 달아두면 좋습니다. 예를 들어, 'No Backpack' 또는 **'Checks if backpack is full' (배낭이 꽉 찼는지 확인)**이라고 주석을 달아두면, 나중에 코드를 확인하거나 다른 사람과 협업할 때 훨씬 편리합니다.
이 개념은 매우 중요하며, 모든 프로그래밍에서 핵심적으로 사용됩니다. 다음 강의로 넘어가서 더 많은 것을 배워봅시다.
반응형
'Unreal Engine' 카테고리의 다른 글
Unreal Engine 이벤트(Events)의 이해 및 활용 (0) | 2025.10.14 |
---|---|
Unreal Engine 이벤트(Events), 함수(Functions), 매크로(Macros) 소개 (0) | 2025.10.14 |
Unreal Engine 변수 설정하기 (Setting Variables) (0) | 2025.10.14 |
Unreal Engine Branch 노드와 조건 연산자 (Conditionals) (0) | 2025.10.14 |
Unreal Engine 변수 연산자 (Variable Operators) (0) | 2025.10.14 |