Unreal

[Unreal] 4월 9일 수업정리

k-codestudy 2025. 4. 9. 13:44

컴포넌트

컴포넌트(Component)의 포함 관계

  • 언리얼에서 컴포넌트는 포함관계로 사용됨
  • 즉, 컴포넌트를 클래스 멤버 변수로 선언해서 소유함
  • 이는 객체의 부분(part)을 구성하는 조립 개념이 아닌, 순수한 프로그램 로직 단위로 컴포넌트를 구성한다는 느낌

 

액터(Actor) vs 씬 컴포넌트(Scene Component)

 

액터 컴포넌트(Actor Component)

  • UActorComponent를 기반으로 하는 클래스들
  • 공간좌표 없음, 씬에 렌더링되지 않음
  • 대표적으로 게임 로직, 상태 관리, 체력 시스템 등 구현 시 사용됨
  • 컨스트럭션 스크립트 없음 → 즉, 조립단계 없이 바로 동작하는 로직 단위

단점:

  • 다른 컴포넌트를 붙일 수 없음
  • 즉, 컴포넌트는 다른 컴포넌트를 계층적으로 포함할 수 없음

 

핵심 요약

  • 컴포넌트 = 포함관계 (포인터 멤버로 보유)
  • 액터 컴포넌트는 공간 정보 없이 로직만을 담당하는 프로그램 단위
  • 씬 컴포넌트는 공간 정보를 가지고 있어 씬에서 보이고 배치될 수 있음
  • 컴포넌트끼리는 중첩 불가, 오직 액터가 컴포넌트를 보유 가능
Actor - 자체적으로는 공간 좌표를 가지지 않음.
- 순수한 프로그램 로직의 덩어리.
- 대표적으로 UActorComponent 계열.
Scene Component - 공간 정보를 가지는 컴포넌트 (Transform: 위치, 회전, 스케일).
- 씬에 실제로 렌더링될 수 있음.
- 예: UStaticMeshComponent, UCameraComponent 등.

 

Component의 특징

  • 컨스트럭션 스크립트 없으며, Actor처럼 조립단계의 개념이 없음
  • 그냥 순수한 기능적 객체로 동작
  • Component에는 다른 Component를 붙일 수 없으며, 오직 Actor → Component 구조만 가능

사용 목적:

  • 재사용 가능한 기능 블록을 만들고 Actor에 부착하여 조합해서 사용

 

구현 

Actor Compoent를 하나 생성
변수 : m-timeMax, m-TimeCurrent, m-enable 이벤트 디스패처 : ed-use 함수 : e-use 선언
Event Tick에 if : m-enable이 false라면 틱당 m-TimeCurrent에 값을 추가 (a = a + 1) / if :true라면 m-enable이 true로 스킬이 사용이 가능해지고 m_timeCurrent가 m-time Max가 됨 / if : flase라면 m-enable이 false로 m-timeCurrent의 시간이 출력
E-use 함수에 시퀀스를 이용하여 디폴트 return 보장 ( 이거 습관처럼 할 것 ) / if : true라면 Ed-use를 호출하고 m-TimeCurrent를 0으로 변경하고 m-enable을 false로 바꾸고 return으로 반환
BP_ThridPerson에 1키를 누르게 되면 comp-cooltimer에 E-use 함수를 호출하여 if : false라면 사용 불가 출력 / 커스텀 이벤트 e-Skill 호출 시 Skill 출력
beginPlay (늦은 초기화) : 시퀀스 then0실행 후 then1 실행 되게 설정 / comp-cooltimer의 Ed-Use를 바인드 후 e-Skill이벤트 호출
실행

 

무브먼트

컴포넌트에 존재하는 movement ( 뭐가 뭔지는 언리얼 공식 홈페이지 가서 확인 할 것 )
Interp To MoveMent : 컨트롤에서 Control Points 인덱스를 정해서 어디서 부터 어디까지 이동하는지 정할 수 있음
Behaviour Type : 어떻게 움직이는지에 대한 것 ( 해보면 암 )

'Unreal' 카테고리의 다른 글

[Unreal] 4월 14일 수업정리  (0) 2025.04.14
[Unreal] 4월 10일 수업정리  (0) 2025.04.10
[Unreal] 4월 8일 수업정리  (0) 2025.04.09
[Unreal] 4월 7일 수업정리  (0) 2025.04.07
[Unreal] 4월 4일 수업정리  (0) 2025.04.04