Notice
Recent Posts
Recent Comments
Link
스토리지
Component 본문
Unity의 컴포넌트의 개념과 거의 유사하다.
- 위의 이미지는 이미 Static Mesh 컴포넌트가 추가되었지만 아무것도 없을 때는 Default로 하나가 들어가 있다.
- Root 컴포넌트는 기준이기 때문에 움직일 수 없고 각도를 변경할 수 없다. 스케일은 변경 가능하다.
- Root 컴포넌트는 무조건 존재해야한다. 삭제가 불가능하다.
1. 코드에서 컴포넌트 추가
//Item.h
UPROPERTY(VisibleAnywhere)
UStaticMeshComponent* ItemMesh;
먼저 헤더파일에 해당 컴포넌트의 주소를 담을 변수를 생성한다.
//Item.cpp
AItem::AItem()
{
ItemMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ItemMeshComponent"));
RootComponent = ItemMesh;
}
해당 객체의 생성자에서 컴포넌트를 생성한다.
- Unity에서 컴포넌트를 추가할 때 new를 사용하지 않고 AddComponent를 사용하지 않는 것처럼 언리얼에서도 new를 사용하지 않고 CreateDefaultSubobject 함수를 사용한다.
- CreateDefaultSubobject<해당컴포넌트자료형>(컴포넌트이름) 이런 형식으로 만든다.
- 해당 함수의 반환은 만든 컴포넌트의 주소가 반환이 된다.
- 컴포넌트 생성후 만든 컴포넌트가 root가 되어야 할 때는 RootComponent(type: USceneComponent)에 대입한다.
- 기존의 RootComponent에 연결되어 있던 것은 아무곳에서도 참조 안할 시 가비지 컬렉터에 의해 삭제되어진다.
'Unreal Engine > 0. Unreal 5' 카테고리의 다른 글
Forward Declaration (전방 선언) (0) | 2023.07.12 |
---|---|
Pawn 추가 (0) | 2023.07.12 |
UPROPERTY / UFUNCTION (0) | 2023.07.11 |
Unreal 로깅 2 (0) | 2023.07.10 |
Unreal 로깅 (0) | 2023.07.07 |
Comments