🎮Unreal4/C++_TPS
[UE4] 총알 발사 (Shoot, ComponentHit)
공대 컴린이
2023. 3. 16. 11:11
728x90
앞서 만들어진 이쑤시개 같은 총알을 발사하는 기능을 구현해보았다.
🚩 Bullet 클래스
Bullet 클래스에 Projectile을 포함하여 만들어놓았기 때문에, Projectile을 이용하여 총알을 발사했다.
InitialSpeed와 MaxSpeed를 설정하여 발사하는 가속도값을 설정할 수 있도록 했고 일직선으로 총알이 나가도록 Gravity를 0으로 설정하였다.
Bullet의 Hit 충돌을 감지하여 총알이 어딘가에 Hit 됐을 때 Destroy 되도록 구현하였다.
Begin Play에 총알의 Capsule Component에 있는 Component Hit에 Bullet::OnHit 함수를 이벤트 디스패처로 등록하였다.
또한 총알이 발사되는 Shoot 함수가 수행되면 Projectile의 Velocity를 매개변수로 받아온 방향으로 초기화하여 해당 방향으로 날아갈 수 있도록 하였다.
🚩 Shoot
Shoot함수는 Weapon의 OnFire 함수에서 호출한다.
OnFire 함수에서 Bullet 객체를 생성하고, World에 Spawn시킨다. 이후 성공적으로 Bullet 객체가 생성되었다면 Shoot 함수를 실행하여 총알을 발사한다.
총알이 나갈 위치는 총(AR4)의 Mesh에서 muzzleflash 위치에 소켓을 추가하여 만들어주었다.
총알이 나가는 위치가 총과 너무 붙어있다면 나가는 동시에 총과 충돌처리될 수 있으므로 앞으로 위치를 땡겨서 배치하였다.
결과적으로 빛나는 이쑤시개 같은 총알이 발사되며 총을 쏘는듯한 느낌이 살아났다.
728x90