클래스 기능을 분담화 하기 위해서 여러 클래스를 만듬



C++ Weapon : 무기의 추상화 클래스, Class Ammo를 가지고 있다. 필요하면 기능 추가예정


class KGAME_API AKWeapon : public AActor
{
	GENERATED_BODY()
	
public:	
	AKWeapon();

	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Weapon")
		USkeletalMeshComponent* Mesh;

	UPROPERTY(VisibleAnywhere, Category = "Weapon")
		class AKAmmo* Ammo;

protected:
	virtual void BeginPlay() override;

	int CurrentAmmo;
	int MaxAmmo;
	int MinAmmo;
	float ammoSpeed;
};



C++ Ammo : 탄 메시 및 충돌체, 발사체 틱,

UCLASS()
class KGAME_API AKAmmo : public AActor
{
	GENERATED_BODY()
	
public:	
	AKAmmo();

protected:
	virtual void Tick(float DeltaTime) override;

	UPROPERTY(VisibleAnywhere, Category = "Ammo")
		UStaticMeshComponent* Mesh;

	UPROPERTY(VisibleAnywhere, Category = "Collsion")
		UBoxComponent* BoxComponent;

	UPROPERTY(VisibleAnywhere, Category = "Effect")
		UParticleSystemComponent* Effect;
};





C++ Pistol : 권총 클래스, 탄은 12발

//h
UCLASS()
class KGAME_API AKPistol : public AKWeapon
{
	GENERATED_BODY()
	
public:
	AKPistol();

protected:
	virtual void BeginPlay() override;
};

//cpp
AKPistol::AKPistol()
{
	static ConstructorHelpers::FObjectFinder<USkeletalMesh> gunmesh(TEXT("SkeletalMesh'/Game/Pistol_Starter/SkeletalMesh/SK_1911_01.SK_1911_01'"));

	if (gunmesh.Succeeded())
	{
		Mesh->SetSkeletalMesh(gunmesh.Object);
	}
}

void AKPistol::BeginPlay()
{
	Super::BeginPlay();

	MaxAmmo = 12;
	MinAmmo = 0;
	CurrentAmmo = MaxAmmo;
}







그리고 캐릭터는 KWeapon 포인터를 하나 들고 있게함
장비가 여러개 될 경우에는 교체예정
 


 

 

 

소켓 위치조절 및 설정

 
별도로 코드로 할 경우에는 재귀적으로 노드를 순위하면서 이름을 찾아야함

 

 

void AKCharacter::SetWeapon(class AKWeapon* NewWeapon)
{
	FName WeaponSocket(TEXT("hand_rSocket"));
	if (nullptr != NewWeapon)
	{
		NewWeapon->AttachToComponent(GetMesh(), FAttachmentTransformRules::SnapToTargetNotIncludingScale, WeaponSocket);
		NewWeapon->SetOwner(this);
		CurrentWeapon = NewWeapon;
	}
}

구현한 소켓이름을 찾아서 붙이는 함수



 

결과

 

'Unreal > Game 2 ' 카테고리의 다른 글

7.1 발사 이펙트 + 사운드 cue,wav  (0) 2019.06.21
7. 탄 생성, 발사, 재장전  (0) 2019.06.20
5.1 T Pose -> A Pose 변환 [MCO Mocap]  (0) 2019.06.18
5. 점프 애니메이션  (0) 2019.06.18
4.1 기존 바인딩 함수 이동  (0) 2019.06.18

+ Recent posts