SphereCollision
SphereCollision = CreateDefaultSubobject<USphereComponent>("Collision"); // Collision 가져오기
SphereCollision->SetGenerateOverlapEvents(true);// 오버랩 이벤트 활성화
SphereCollision->SetSphereRadius(10.0f); // Collision 크기 설정
SphereCollision->BodyInstance.SetCollisionProfileName("BlockAll");
SphereCollision->OnComponentHit.AddDynamic(this, &AUS_BaseWeaponProjectile::OnHit); // 충돌 이벤트 바인딩
RootComponent = SphereCollision; // 루트 컴포넌트 지정
SphereCollision->BodyInstance.SetCollisionProfileName("BlockAll"): 해당 옵션은 오브젝트의 이름으로 충돌 여부를 결정할 수 있다. 다만, 현재는 모든 충돌 채널과 상호작용하도록 설정되어 있다.
Mesh
Mesh = CreateDefaultSubobject<UStaticMeshComponent>("Mesh"); // mesh 가져오기
Mesh->SetupAttachment(RootComponent); // 루트의 자식 선언
Mesh->SetCollisionEnabled(ECollisionEnabled::PhysicsOnly); // 물리 충돌만 활성화
Mesh->SetRelativeLocation(FVector(-40.f, 0.f, 0.f)); // 위치 설정
Mesh->SetRelativeRotation(FRotator(-90.f, 0.f, 0.f));// 회전 설정
// 설정할 mesh 가져오기
static ConstructorHelpers::FObjectFinder<UStaticMesh> StaticMesh(TEXT("/Game/KayKit/DungeonElements/dagger_common"));
if (StaticMesh.Succeeded())
{
// mesh 설정
GetMesh()->SetStaticMesh(StaticMesh.Object);
}
Mesh->SetCollisionEnabled(ECollisionEnabled::PhysicsOnly): 물리 충돌만 활성화한다. 즉, SphereCollision은 오브젝트의 충돌을 활성화하는 것이고, 해당 옵션은 물리적 충돌에 반응하게 하기 위한 것이다.
ProjectileMovement
ProjectileMovement = CreateDefaultSubobject<UProjectileMovementComponent>("ProjectileMovement"); // ProjectileMovement 설정
ProjectileMovement->UpdatedComponent = SphereCollision;
ProjectileMovement->ProjectileGravityScale = 0; // 중력 영향 제거
ProjectileMovement->InitialSpeed = 3000; // 초기 속도
ProjectileMovement->MaxSpeed = 3000; // 최대 속도(가속 없음)
ProjectileMovement->bRotationFollowsVelocity = true; // 이동 방향으로 회전
ProjectileMovement->bShouldBounce = false; // 충돌 시 튕김 비활성화
bReplicates = true; // 네트워크 복제 활성화
ProjectileMovement->UpdatedComponent = SphereCollision: 해당 옵션은 언리얼 문서에 따르면 "이동하고 업데이트할 구성요소를 할당합니다."라고 되어 있는데, 정확하지는 않지만 날아가는 방향을 정하기 위해 사용되는 듯하다.
'Unreal > 언리얼 엔진 5로 개발하는 멀티플레이어 게임(Book)' 카테고리의 다른 글
[Unreal] 애니메이션 에셋 생성 (0) | 2025.04.04 |
---|---|
[Unreal] US_WeaponProjectileComponent.cpp 코드 분석 (0) | 2025.04.04 |
[Unreal] US_Minion.cpp (체력) (0) | 2025.04.02 |
[Unreal] 경보 시스템 코드 분석 (0) | 2025.04.01 |
[Unreal] 소음, 감지 코드 분석 (0) | 2025.04.01 |