Unreal Engine/2. Twin Stick Shooter
6. 무기에서 탄환 나가게 하기
ljw4104
2021. 10. 27. 18:13
1. HeroCharacter에서 탄환이 나가는 곳 설정
Arrow component를 사용
2. Weapon Blueprint 작성
1. PullTrigger, ReleaseTrigger, Fire 이벤트 작성
- Pull Trigger 이벤트 발동 시에 Do Once를 통해 한번만 실행되게 함.
- Pull Trigger 이벤트를 통해 Fire 함수 호출
- Timer를 설정해서 1초당 몇 발이 나갈지를 RoundsPerSeconds라는 변수를 통해서 조절함.
- 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 에 트리거를 묶어 두고서 그 트리거가 활성화되면 문이 다시 열리도록 할 수도 있습니다.
- Fire 이벤트 실행 시에 Projectile 클래스를 Spawn함.
- Spawn Transform은 Arrow Component의 Transform을 GetWorldTransform이라는 함수를 통해 가져옴.
3. Gun을 HeroCharacter에 부착하기
- 플레이를 시작할 때 해당 이벤트를 작동함.
- SpawnActor Weapon 함수를 통해 Weapon 클래스를 GunTemp 위치에 달아줌
- GunTemp의 transform은 GetWorldTransform이라는 함수를 통해 얻어온다.
- SpawnActor Weapon 함수의 결과값을 변수로 만든 다음에 AttachActorToComponent(총을 Hero에 붙이는 작업을 수행하는 함수)라는 함수를 사용한다.
- 타깃은 반환값, 부모는 GunTemp
액터 스폰하기
게임플레이 코드에서 Actor 의 새 인스턴스, AActor 를 생성하는 메서드에 대해 설명합니다.
docs.unrealengine.com
4. 탄환 발사시키기
이 게임은 유저가 회전할 때 탄환을 발사한다.
회전 값이 0.25보다 클 때에는 True가 되어 회전하니 탄환을 발사한다. => Pull Trigger function called
0.25보다 작을때는 False값이 되어 발사하지 않는다. => Release Trigger function called
결과값
탄환이 너무 굵은데 이걸 줄일 수가 없다