Unreal Engine/2. Twin Stick Shooter

6. 무기에서 탄환 나가게 하기

ljw4104 2021. 10. 27. 18:13

1. HeroCharacter에서 탄환이 나가는 곳 설정

Arrow component를 사용

 

2. Weapon Blueprint 작성

1. PullTrigger, ReleaseTrigger, Fire 이벤트 작성

  1. Pull Trigger 이벤트 발동 시에 Do Once를 통해 한번만 실행되게 함.
  2. Pull Trigger 이벤트를 통해 Fire 함수 호출 
  3. Timer를 설정해서 1초당 몇 발이 나갈지를 RoundsPerSeconds라는 변수를 통해서 조절함.
  4. ReleaseTrigger 이벤트를 통해 Timer를 종료하고 위의 Do Once를 초기화

https://docs.unrealengine.com/4.26/ko/ProgrammingAndScripting/Blueprints/UserGuide/FlowControl/

 

흐름 제어

조건에 따라 실행 흐름을 제어할 수 있는 노드입니다.

docs.unrealengine.com


DoOnce

DoOnce (한 번 실행) 노드는 이름 그대로 실행 신호를 한 번만 발동시킵니다. 그 시점부터는 Reset 입력에 신호를 별도로 주지 않는 이상 실행 신호를 내보내지 않습니다. 이 노드는 DoN 노드에서 N = 1 일때와 같습니다.

예를 들어 DoOnce 를 통해 문을 여는 네트워크를 만들었다면 그 문은 한 번만 열리게 됩니다. 그러나 Reset 에 트리거를 묶어 두고서 그 트리거가 활성화되면 문이 다시 열리도록 할 수도 있습니다.

 


  1. Fire 이벤트 실행 시에 Projectile 클래스를 Spawn함.
  2. Spawn Transform은 Arrow Component의 Transform을 GetWorldTransform이라는 함수를 통해 가져옴.

 

3. Gun을 HeroCharacter에 부착하기

  1. 플레이를 시작할 때 해당 이벤트를 작동함.
  2. SpawnActor Weapon 함수를 통해 Weapon 클래스를 GunTemp 위치에 달아줌
  3. GunTemp의 transform은 GetWorldTransform이라는 함수를 통해 얻어온다.
  4. SpawnActor Weapon 함수의 결과값을 변수로 만든 다음에 AttachActorToComponent(총을 Hero에 붙이는 작업을 수행하는 함수)라는 함수를 사용한다.
  5. 타깃은 반환값, 부모는 GunTemp

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Actors/Spawning/

 

액터 스폰하기

게임플레이 코드에서 Actor 의 새 인스턴스, AActor 를 생성하는 메서드에 대해 설명합니다.

docs.unrealengine.com

 

4. 탄환 발사시키기

이 게임은 유저가 회전할 때 탄환을 발사한다. 

회전 값이 0.25보다 클 때에는 True가 되어 회전하니 탄환을 발사한다. => Pull Trigger function called

0.25보다 작을때는 False값이 되어 발사하지 않는다. => Release Trigger function called


결과값

탄환이 너무 굵은데 이걸 줄일 수가 없다