The Item Class
Actor를 상속받는 Item 클래스를 만들어 줍니다. 이는 웨폰의 부모가 될 것입니다.
Item.h
private:
// Line trace collides with bos to show HUD widgets
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Item Properties", meta = (AllowPrivateAccess))
class UBoxComponent *CollisionBox;
// Skeletal Mesh for the item
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Item Properties", meta = (AllowPrivateAccess))
USkeletalMeshComponent *ItemMesh;
};
- class UBoxComponent *CollisionBox : Collision 이벤트를 위한 Box
- USkeletalMeshComponent *ItemMesh : 아이템의 Mesh
Item.cpp
#include "Components/BoxComponent.h"
// Sets default values
AItem::AItem()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
ItemMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("ItemMesh"));
SetRootComponent(ItemMesh);
CollisionBox = CreateDefaultSubobject<UBoxComponent>(TEXT("CollisionBox"));
CollisionBox->SetupAttachment(ItemMesh);
}
- CreateDefaultSubobject<TYPE>(TEXT("NAME")) : 컴포넌트 생성
- SetRootComponent(ItemMesh) : 루트 컴포넌트를 ItemMesh로 설정
- CollisionBox->SetupAttachment(ItemMesh) : CollisionBox를 ItmeMesh의 자식으로 부착
The Weapon Class
Item을 상속받는 Weapon 클래스를 만들어 줍니다.
아래 사진과 같은 폴더구조를 만들고, Weapon을 상속받는 BP_BaseWeapon을 만들어 줍니다.
이후 벨리카의 건만을 사용하기 위해서 깃허브에서 파일을 받아 임포트하고, Meterial을 설정해 주면 Gun만 추출한 Skeletal Mesh를 얻을 수 있습니다.
이 방법이 싫으실 경우 Transparant(투명한) Meterial을 만들고 Opacity(투명도)를 0으로 설정해서 Belica의 스켈레탈 메쉬의 복사본을 만들고, Gun을 제외한 부분의 Meterial을 Transparant로 설정하여 총만 보이게 할 수 있습니다.
'Unreal 공부 > Unreal Engine 4 C++ The Ultimate Shooter' 카테고리의 다른 글
The Weapon - 2 (0) | 2024.02.02 |
---|---|
The Weapon - 2 (1) | 2024.01.09 |
Aiming and Crosshairs - 3 (0) | 2024.01.04 |
Aiming and Crosshairs - 2 (1) | 2024.01.04 |
Aiming and Crosshairs - 1 (0) | 2023.12.31 |