본문으로 건너뛰기
Unreal Engine C++ 기초집LESSON 07

Static Mesh와 Collision Component

난이도초급
예상 시간35분
선수지식6강의 Component 계층

7강. Static Mesh와 Collision Component

1. 이번 강의에서 해결할 문제

보이는 Mesh를 바꾸자 충돌 모양까지 달라지고 Overlap 이벤트가 발생하지 않습니다. 시각 표현과 게임 판정용 Collision Component를 분리합니다.

2. 학습 목표

3. 핵심 개념

Collision은 “상대가 누구인가”를 나타내는 Object Type과 “그 상대를 어떻게 처리하는가”를 나타내는 Response로 결정됩니다. Block은 이동을 막고, Overlap은 통과를 허용하면서 이벤트를 발생시키며, Ignore는 상호작용하지 않습니다.

Primitive Mesh의 복잡한 충돌을 게임 규칙에 그대로 사용하면 에셋 변경이 판정에 영향을 줍니다. 단순 Box, Sphere, Capsule을 판정 기준으로 두면 예측과 조정이 쉽습니다.

4. 단계별 실습

파일 경로: Source/TopDownSurvival/Actors/SurvivalObstacle.h

SurvivalObstacle.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "SurvivalObstacle.generated.h"

class UBoxComponent;
class UStaticMeshComponent;

UCLASS()
class TOPDOWNSURVIVAL_API ASurvivalObstacle : public AActor
{
GENERATED_BODY()

public:
ASurvivalObstacle();

protected:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components")
TObjectPtr<UBoxComponent> CollisionBox;

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components")
TObjectPtr<UStaticMeshComponent> ObstacleMesh;
};

파일 경로: Source/TopDownSurvival/Actors/SurvivalObstacle.cpp

SurvivalObstacle.cpp
#include "Actors/SurvivalObstacle.h"

#include "Components/BoxComponent.h"
#include "Components/StaticMeshComponent.h"

ASurvivalObstacle::ASurvivalObstacle()
{
PrimaryActorTick.bCanEverTick = false;

CollisionBox = CreateDefaultSubobject<UBoxComponent>(TEXT("CollisionBox"));
CollisionBox->SetBoxExtent(FVector(50.0, 50.0, 50.0));
CollisionBox->SetCollisionProfileName(TEXT("BlockAll"));
SetRootComponent(CollisionBox);

ObstacleMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ObstacleMesh"));
ObstacleMesh->SetupAttachment(CollisionBox);
ObstacleMesh->SetCollisionEnabled(ECollisionEnabled::NoCollision);
}

Blueprint Editor

BP_SurvivalObstacle을 만들고 ObstacleMesh에 Cube를 연결합니다. Mesh 크기를 바꾸면 CollisionBox Extent도 의도한 플레이 공간에 맞게 조정합니다.

5. 코드가 동작하는 이유

CollisionBox가 Root이므로 Actor의 이동과 충돌 기준이 같습니다. Mesh의 충돌을 끄면 Box와 Mesh가 동시에 충돌해 캐릭터가 튀거나 중복 이벤트가 생기는 일을 막습니다. Tick은 전혀 필요하지 않아 비활성화합니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

Static Mesh와 Collision Component 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Static Mesh와 Collision Component” 작업 전 검토에서 채택해야 할 안전 기준은 무엇인가요?
  2. 문제 2“Static Mesh와 Collision Component” 실습 중 ‘Generate Overlap Events만 켜면 된다고 생각’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

7강. Static Mesh와 Collision Component 미완료 상태