5. [Unreal 5 / C++] 발사체와 오브젝트 풀링
·
Unreal 5/FPS Shooting
아마 이번 게시글이 FPS Shooting 태그의 마지막 게시글이 될 것 같다.이번 시간에는 기존 SpawnActor로 생성하던 발사체 객체에 더 효율적인 오브젝트 풀링을 적용해보자.1. PoolableActor 생성오브젝트 풀링의 적용 대상은 Actor이므로 Actor를 상속받는 PoolableActor 클래스를 만들어준다. PoolableActor.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "PoolableActor.generated.h"UCLASS()class PROJECT_4_API APoolableActor : public AActor{ GENERATED_BODY() public: APoolabl..
4. [Unreal 5 / C++] 반동(Camera Shake)과 연사
·
Unreal 5/FPS Shooting
이전 포스트에서 발사체를 구현하고 에임 사이즈에 따라서 탄이 튀는 것 까지 구현을 하였다.이번 시간에는 발사시 발생하는 반동과 재장전 로직에 대해서 다루겠다. 1.Camera Shake를 사용한 반동 구현ULegacyCameraShake 클래스를 상속받는 UiCameraShake클래스를 생성해준다. UiCameraShake.h#pragma once#include "CoreMinimal.h"#include "Shakes/LegacyCameraShake.h"#include "UiCameraShake.generated.h"UCLASS()class PROJECT_4_API UUiCameraShake : public ULegacyCameraShake{ GENERATED_BODY()public: UUiC..
3. [Unreal 5 / C++] 동적 크로스헤어 구현
·
Unreal 5/FPS Shooting
이번 시간에는 플레이어의 움직임(속도)에 비례하여 동적으로 변화하는 크로스헤어를 구현해볼 것이다. 우선 크로스헤어에 필요한 Texture를 구해준다.여기서 동적으로 움직이는 부분은 상하좌우의 Line이고, 중간의 Dot은 정적이니 필수는 아니다.CrosshairWidget 클래스 작성UserWidget을 상속받는 클래스를 작성하고, 상하좌우 Line에 해당하는 이미지를 바인딩한다.#pragma once#include "CoreMinimal.h"#include "Blueprint/UserWidget.h"#include "Components/Image.h"#include "CrosshairWidget.generated.h"UCLASS()class PROJECT_4_API UCrosshairWidget : p..
2. [Unreal 5 / C++] 발사체 구현 하기
·
Unreal 5/FPS Shooting
발사체 액터 클래스 추가이번 시간에는 슈팅 시 생성될 발사체를 구현해보자. 먼저 액터를 상속받는 Projectile 클래스를 추가한다. Projectile 클래스 헤더 구성발사체의 주요 구성 요소는 다음과 같다:SphereComponent: 발사체의 충돌 처리.ProjectileMovementComponent: 발사체의 이동 처리.StaticMeshComponent: 발사체의 모습 정의.ParticleSystem: 발사체 충돌 시 발생할 이펙트 정의.#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "Projectile.generated.h"UCLASS()class PROJECT_4_API AProjectile : p..
1. [Unreal 5 / C++] 슈팅 구현 하기
·
Unreal 5/FPS Shooting
이번 개발의 목표는 아무 플레이어 캐릭터에 직접 만든 컴포넌트를 붙이는 것 만으로 슈팅 시스템이 생기는 것을 목표로 하였다.1. WeaponComponent 생성캐릭터에 붙일 컴포넌트를 만들기 위해 ActorComponent를 상속받는 WeaponComponent 클래스를 생성한다.#pragma once#include "CoreMinimal.h"#include "Components/ActorComponent.h"#include "Player/WeaponData.h"#include "Components/SkeletalMeshComponent.h"#include "Player/Ui/UiComponent.h"#include "WeaponComponent.generated.h"UCLASS(ClassGroup=(..