포스트

UE5 C++ | Obstacle Assault, 블루프린트 하위 클래스 (유데미)

언리얼 강의 중 Section 3를 정리한 네번째 글입니다.

UE5 C++ | Obstacle Assault, 블루프린트 하위 클래스 (유데미)

강의 정보 🎓


범위 지정 연산자 🧭

scope resolution operator

  • :: 형태로 표기되며, 식별자의 범위를 명시적으로 지정할 때 사용하는 연산자이다,
  • 변수, 함수, 클래스, 네임스페이스 등을 특정 범위 내에서 참조할 수 있게 해준다.
  • 예시: 두 벡터 간 거리 계산
1
float dist = FVector::Dist(StartLocation, CurrentLocation);

If 문장 ✅

  • if문을 통해 Moving Platform이 일정 구역을 왔다 갔다 하도록 만들었다.
1
2
3
4
5
	if (DistanceMoved > MoveDistance)
	{
		StartLocation = CurrentLocation;
		PlatformVelocity *= -1.0f;
	}

멤버 함수 사용 🎯

  • PlatformVelocity가 커서 지나칠 경우, 정확한 위치로 다시 정렬 필요하다.
  • GetSafeNormal()을 이용해 이동 방향만 추출 가능하다.
    • GetSafeNormal()은 방향 벡터를 리턴하며, 크기는 1로 정규화됨
1
2
3
4
5
6
7
8
	if (DistanceMoved > MoveDistance)
	{
		FVector MoveDirection = PlatformVelocity.GetSafeNormal();
		StartLocation = StartLocation + MoveDirection * MoveDistance;
		SetActorLocation(StartLocation);

		PlatformVelocity *= -1.0f;
	}

블루프린트 하위 클래스 🧱

생성 방법

  1. MovingPlatform C++ 클래스 우클릭 → 블루프린트 클래스 생성
  2. 생성된 블루프린트: BP_MovingPlatform
  3. 에디터 창에서 다음 컴포넌트 추가:
    • SM_Kit_Floor (스태틱 메시)
    • 추가로 Wall 메시를 넣어 기둥이 올라갔다 내려가는 움직임을 표현하였다.

블루프린트는 C++ 클래스의 기능을 시각적으로 확장해 조작할 수 있게 해줌

image.png


요약 및 느낀점 📝

  • 범위 지정 연산자, if문과 멤버 함수를 이용하여 움직이는 로직을 구현 할 수 있다.
  • 하위 블루프린트 클래스를 통해 스태틱 메쉬를 추가하고 이동 방향 등을 에디터로 수정하였다.

    느낀점 💡 제법 그럴듯한 기둥이 만들어진 것 같고 C++과 언리얼 에디터 간의 상호작용에 점점 익숙해지는 느낌이 들고있다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.