3 - 맵에 키 및 값 추가

블루프린트 맵에 키-값 짝을 추가하고, 최종적으로 맵의 키와 할당된 값을 표시합니다.

Windows
MacOS
Linux

이제 이전 단계에서 정의한 블루프린트 맵에 할당된 값을 표시하는 TextRender Actor 가 있을 것입니다. 이번 단계에서는, 맵에 키-값 짝을 추가 하는 방법, 이어서 맵의 키와 할당된 값을 표시하는 방법을 살펴보겠습니다.

  1. 프로젝트의 콘텐츠 브라우저 에서 Display Map TextRender Actor 에 더블클릭하여 블루프린트 이벤트 그래프 를 엽니다.

    클릭하면 이미지 원본을 확인합니다.

  2. Display Map TextRender Actor 블루프린트 이벤트 그래프 가 보일 것입니다. 여기서 새 블루프린트 맵을 추가하고, 새로운 키-값 짝을 추가 한 뒤, 최종적으로 맵의 키와 할당된 값을 뷰포트 에 표시할 수 있습니다.

    클릭하면 이미지 원본을 확인합니다.

  3. 튜토리얼 이 시점에서 곧 하려는 Add 연산에 쓸 블루프린트 맵 컨테이너를 새로 만들어줄 것입니다. Instruction Map 변수에 우클릭하고 드롭다운 목록에서 복제 를 선택하여 새 블루프린트 맵 변수를 생성하고, 이름을 Weapon Inventory Map 이라 합니다.

    Step3_3.png

  4. 새 맵 컨테이너의 프로퍼티가 다음과 같은지 확인합니다. 키는 String, 값은 Integer 입니다:

    Step3_4.png

    데모 목적 상 무기 인벤토리 블루프린트 맵 컨테이너를 만들고, 여기서 키는 무기 이름이며 값은 그 무기에 쓸 수 있는 탄환 수입니다.

  5. 새 블루프린트 맵을 선택하면, Default Value 메시지가 보일 것입니다.

    클릭하면 이미지 원본을 확인합니다.

  6. 계속해서 컴파일 버튼을 클릭합니다.

    클릭하면 이미지 원본을 확인합니다.

  7. 블루프린트 컴파일 후 Default Value 가 사라져 기본 키-값에 자리를 내어주는 것이 보일 것입니다.

    클릭하면 이미지 원본을 확인합니다.

  8. 이제 에디터에 다음과 같은 경고가 날 것입니다:

    클릭하면 이미지 원본을 확인합니다.

    UE4 에서 이 경고를 내는 이유는 Instruction Map 을 복제했기 때문인데, 이는 Integer-String 키-값 프로퍼티를 갖는 블루프린트 맵으로 String-Integer 키-값 짝을 갖는 Weapon Inventory Map 을 만들려 했기 때문입니다. 복제 과정에서 엔진은 Instruction Map 에 속하는 키-값 짝을 분석한 뒤 Weapon Inventory Map 에 맞는 키-값 짝으로 복사해 넣으려 시도하는데, 바람직하지 않은 작동방식입니다.

    클릭하면 이미지 원본을 확인합니다.

  9. 새로운 Weapon Inventory Map 컨테이너를 다음 키-값 짝으로 채웁니다:

    Step3_9.png

  10. 이제 컴파일 버튼을 클릭합니다.

    클릭하면 이미지 원본을 확인합니다.

  11. Weapon Inventory Map 컨테이너를 적합한 유형의 키-값 짝으로 채우고, 새로운 블루프린트 맵의 키-값 짝 요건을 만족시킨 후에는 경고가 사라지는 것이 보일 것입니다.

    클릭하면 이미지 원본을 확인합니다.

  12. 기존 블루프린트 이벤트 그래프에 새 로직을 추가하기에 앞서, Weapon Inventory Map 변수를 블루프린트에 끌어 놓습니다.

    클릭하면 이미지 원본을 확인합니다.

로직 스크립트 작성

  1. 새 로직 작성을 시작하려면, Weapon Inventory Map 노드를 끌어 놓고 Map Utilities 인터페이스에서 Keys 노드를 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

    Keys 노드는 Weapon Inventory Map 에 존재하는 모든 키 배열을 출력합니다.

  2. Keys 노드에 속하는 Array 출력 핀을 끌어 놓고, ForEachLoop 노드를 검색 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  3. 이제 ForEachLoop 노드에 속하는 Array Element 핀을 끌어 놓고 Print String 노드를 검색 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  4. 블루프린트 그래프에 우클릭하여 컨텍스트 메뉴 를 띄우고 Event ActorBeginOverlap 을 검색 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  5. Event ActorBeginOverlap 노드의 Other Actor 핀을 끌어 놓고 Cast To FirstPersonProjectile 노드를 검색 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  6. Cast To FirstPersonProjectile 노드를 Keys 노드에 연결합니다.

    클릭하면 이미지 원본을 확인합니다.

맵의 키 표시

이제 에디터에서 플레이(PIE) 모드에 들어가면 Display Map Text Render Actor 의 콜리전 박스에 프로젝타일을 발사할 수 있을 것입니다. 이 액터에서 Weapon Inventory Map 에 들어있는 키 배열을 표시할 수 있습니다.

클릭하면 이미지 원본을 확인합니다.

스크립트 마무리

  1. 컨테이너에 새로운 키-값 짝을 추가할 차례입니다. Weapon Inventory Map 변수를 블루프린트에 끌어 놓습니다.

    클릭하면 이미지 원본을 확인합니다.

  2. Weapon Inventory Map 변수를 끌어 놓고 Map Utilities 인터페이스의 Add 노드를 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  3. 이제 추가하고자 하는 키-값 짝을 정의합니다. 키에는 Weapon 6, 값에는 60 입니다.

    클릭하면 이미지 원본을 확인합니다.

  4. Add 노드의 Boolean Return Value 핀을 끌어 놓고 Branch 노드를 검색 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  5. 추가된 키를 표시하는 부가 표시 로직 구성에 앞서, Weapon Inventory Map 변수를 블루프린트에 끌어놓아야 합니다.

    클릭하면 이미지 원본을 확인합니다.

  6. 이제 Weapon Inventory Map 변수를 끌어 놓고 Map Utilities 인터페이스에서 Keys 노드를 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  7. Keys 노드에 속하는 Array 출력 핀을 끌어놓고, ForEachLoop 노드를 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  8. ForEachLoop 노드에 속하는 Array Element 핀을 끌어 놓고, Print String 노드를 검색 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  9. Text Color 를 클릭하여 색 선택 툴 메뉴를 엽니다.

    클릭하면 이미지 원본을 확인합니다.

  10. 색을 다음 값으로 설정합니다:

    Step3_28.png

  11. 여기서도 추가한 값을 표시하는 표시 로직을 구성하기에 앞서, Weapon Inventory Map 변수를 블루프린트에 끌어 놓아야 합니다.

    클릭하면 이미지 원본을 확인합니다.

  12. 이제 Weapon Inventory Map 변수를 끌어 놓고, Map Utilities 인터페이스에서 Values 노드를 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  13. Values 노드에 속하는 Array 출력을 끌어 놓고, ForEachLoop 노드를 검색 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  14. ForEachLoop 노드에 속하는 Execute Output 핀을 끌어 놓고, Print String 노드를 검색 추가합니다.

    클릭하면 이미지 원본을 확인합니다.

  15. ForEachLoop 노드에 속하는 Array Element 핀을 끌어 놓고, Print String 노드에 속하는 In String 핀에 연결합니다.

    클릭하면 이미지 원본을 확인합니다.

  16. Text Color 박스를 클릭하여 색 선택 툴 메뉴를 엽니다.

    클릭하면 이미지 원본을 확인합니다.

  17. 색을 다음 값으로 설정합니다:

    Step3_35.png

  18. Branch 노드의 True 핀을 Keys 노드에 연결합니다.

    클릭하면 이미지 원본을 확인합니다.

  19. Branch 노드의 False 핀을 Values 노드에 연결합니다.

    클릭하면 이미지 원본을 확인합니다.

  20. 스크립트의 로직을 완성을 위해, Cast To FirstPersonProjectile 노드의 Cast Failed 핀을 Add 노드에 연결합니다.

    클릭하면 이미지 원본을 확인합니다.

  21. 완성된 스크립트를 살펴본 후, 컴파일 버튼을 클릭합니다.

    클릭하면 이미지 원본을 확인합니다.

  22. 마지막으로 저장 버튼을 누른 뒤 에디터의 뷰포트 인터페이스로 돌아갑니다.

    클릭하면 이미지 원본을 확인합니다.

  23. 에디터의 뷰포트 인터페이스에서 플레이 버튼을 클릭하여 업데이트된 스크립트가 작동하는 것을 확인해 봅니다.

    클릭하면 이미지 원본을 확인합니다.

최종 결과

비디오에서 볼 수 있듯이, Display Map TextRender Actor 의 콜리전 박스인 First Person Projectile 을 처음 발사하면, 뷰포트 에 처음 다섯 개의 키가 출력되는 것이 보일 것입니다. 그리고 콜리전 박스를 통과해 걸어가면, 새로운 키가 추가되고 곧이어 출력되는 것이 보일 것입니다. 콜리전 박스를 빠져 나온 뒤 다시 First Person Projectile 을 발사해 보면 새로 추가된 키를 확인할 수 있습니다. 마지막으로 콜리전 박스를 두 번째 걸어서 통과하면, 모든 값이 출력되는 것을 확인할 수 있습니다.

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback