액터를 부모로 BP_Bullet을 만듭니다.
컴포넌트로 큐브를 추가하고
스케일을 조정합니다.
speed변수를 float로 만들고 컴파일후 디폴트를 200으로 합니다. 다음과 같이 블루프린트를 입력합니다.
노드를 잘보면 입력을 받았을때는 입력 벡터를 기준으로 날라 갔지만 지금은 총알 스스로 앞으로 나가기 위해 forward 벡터값을 활용합니다.
BP_bullet을 레벨에 플레이어와 겹치지 않게 옆으로 배치하고 플레이해보면 혼자 앞으로 움직입니다 언리얼은 x방향이 forward입니다. 실제 총알은 위로 날라가야 하므로 이건 나중에 설정하겠습니다.
레벨의 BP_Bullet는 지워줍니다. 총알발사 입력때 생성해서 날라가게 해주겠습니다.
총알을 발사하기 위한 인풋액션이 필요합니다. IA_ShipFire를 만들어주겠습니다 .ValueType은 Digital(Bool)입니다.
IMC_Shooting을 열어 IA_ShipFire를 Mappings+를 눌러 추가합니다.
총알의 발사의 입력은 총알이 아닌 Ship에서 받아야 하므로 BP_Ship을 오픈합니다.
IA_ShipFire 이벤트를 추가하고 Started와 SpawnActor Class를 추가하고 Class를 BP_Bullet을 지정합니다.
Triggered에 연결하면 클릭하는 동안 계속 발사되게 되어 Started로 연결해서 한번만 발사되게 합니다.
이제 위치를 지정해야 하는데 Arrow를 추가해 위치로 사용할겁니다. 위를 향하게 회전시켜주고 위로 올려줍니다.
Ship위쪽에서 발사되게 하기 위해서입니다.
Arrow에서 Get World Transform을 Spawn Transform으로 해주면 Bullet이 Arrow의 방향으로 생성됩니다. 생성된 Bullet을 Forward는 0,0,1이 되므로 위로 날라갑니다. SpawnActordml Collision Handling Override는 Always Spawn으로 충돌시에도 생성되게 해줍니다. 화살표를 여유있게 위로 올린것도 충돌을 피해주기 위해서입니다.
플레이후 마우스클릭후 좌클릭을 하면 앞쪽이 Z방향이 되었으므로 위쪽으로 날라갑니다.
Spawn뒤에 Play Sound2D를 연결해 발사음을 플레이 합니다.
https://github.com/araxrlab/lifeunreal/tree/main/%EC%9E%90%EB%A3%8C%EC%8B%A4/2%EC%9E%A5
lifeunreal/자료실/2장 at main · araxrlab/lifeunreal
인생 언리얼 교과서 공식 예제. Contribute to araxrlab/lifeunreal development by creating an account on GitHub.
github.com
'게임프로젝트 > 슈팅게임' 카테고리의 다른 글
배경 만들기 (0) | 2025.03.10 |
---|---|
충돌처리 Collision (0) | 2025.03.10 |
Enemy, Factory 제작하기 (0) | 2025.03.10 |
Enhancement Input Blueprint, Pawn 이동 (1) | 2025.03.10 |