본문 바로가기

블루프린팅/7. 화면 UI

[CH7.UI] 탄약카운터 감소

탄약 카운터 감소

플레이어가 총을 발사할 때 탄약 카운터가 감소하도록 플레이어 발사 로직을 수정해야 한다. 다음 단계를 따른다.

1. 콘텐츠 브라우저에서 콘텐츠> FirstPerson>Blueprints폴더에 접근하고  BP_Rifle 블루프린트를 더블 클릭한다. 저는 V5.2라서 그런지 BP_Weapon_Component를 선택했습니다.

2. Projectile Spawn Logic 코멘트 블록에 포함된 큰 일련의 노드들을 찾는다. 블록의 오른쪽끝에 Play Sound at Location이 있습니다.. 이 노드의 출력은 Montage Play와 연결되어 있는데 이 연결을 ALT+좌클릭으로 끊습니다.

3. Player Sound 출력핀을 끌어 BP_FirstPersonCharacter형변환노드를 추가하고 Object입력핀을 끌어 선에 Get Player Charater노드를 연결한다,

3-1.형변환 출력핀에서 선을 끌어 Set Player Current Ammo노드를 추가해준다. 형변환 As BP FirstPersonCharacter출력핀을 끌어 Set Player Current Ammo노드의 타깃 입력핀에 연결한다.

4. 형변환 As BP 핀에서 Get Player Current Ammo노드를 만들고 Subtract 노드를 추가해줍니다.

5. 추가된 Subtract노드 아래 필드에 1을 입력하고 출력을 SET Player Current Ammo입력핀과 연결해줍니다.

5. SET의 출력을 끊어졌던 Montage Play로 연결해줘 원래 흐름을 살려줍니다.

6. 컴파일 세이브후 빠져나와 레벨에디터에서 플레이 해봅니다. Ammo Count가 잘 줄어 듭니다.

7. 요약 총이 발사시 소리를 내는 Sound이벤트를 가로채서 BP_FristPerson_Character의 PlayerCurrentAmmo를 하나 빼고 다시 세팅하네요  이렇게 복잡한 이유는 PlayerCurrentAmmo가 BP_FristPerson_Character블루프린트에서 정의된 변수라서 형변환을 이용해 접근하는것 같습니다. 변수값이 바뀌면 바인딩된 UI가 작동하는것 같구요. 오른쪽이 이전에 만든 AmmoLeft UI 블루프린트입니다. PlayerCurrentAmmo를 읽어 Return Node값을 설정합니다.