Mesh
StaticMeshComponent : 관례상 VisibleAnywhere를 사용한다.
(헤더)#include "Components/StaticMeshComponent.h"를 본문에서 추가해줘야 사용할 수 있다.
(초기화)Mesh = CreateDefuaultSubObject<UStaticMeshComponent>("에디터에서 나타날 이름");
->> CreateDefaultSubobject : 컴포넌트 동적할당한다는 뜻으로 언리얼C에서 컴포넌트를 만들때 사용한다.
(경로지정)RootComponent = Mesh;StaticMesh
(초기화)ConstructorHelpers::FObjectFinder<UStaticMesh> mesh(L"메시가 저장되어 있는 언리얼 경로(레퍼런스 복사)");
if(mesh.Succeeded()) { Mesh ->SetStaticMesh(mesh.Object); }
Material
: 머티리얼은 그대로쓰지 않고 인스턴스화해서 셰이더 빌드해서 사용한다. Global Vector Parameter Values에서 체크를 해줘야 C에서 값을 다룰 수 있다.
(Header위치)
#include "Materials/MaterialInstanceConstant.h"
(머티리얼 가져오기)UObject* obj = StaticLoadObject(UMaterialInstanceConstant(자료형)::StaticClass(), nullptr, L"경로(레퍼런스 복사)");
(Casting)UMaterialInstanceConstant* material = Cast<UMaterialInstanceConstant>(obj);
->>- UMaterialInstanceConstant : 바꿀수 없는 값 상수(값을 바꾸기)
Material = UMaterialInstanceDynamic::Create(material, this);
(설정)Mesh -> SetMaterial(엘리먼트 번호, Material);
UKismetSystemLibrary::K2_SetTimer
: 일정시간 후에 지정한 함수를 호출한다.
(헤더)#include "Kismet/KismetSystemLibrary.h"
(사용)UKismetSystemLibrary::K2_SetTimer(this, "SetRandomColor", 주기, 반복여부, 최초 실행 딜레이);
(함수만들기)Mesh::SetRandomColor(){ Material->SetVectorParameterValue("Color", FLinearColor::MakeRandomColor()); }MakeRandomColor() : 무작위 색상을 생성하는 함수
FColor : 0~255범위
FLinearColor : 0~1범위
UPROPERTY
- UObject* : 오브젝트 레퍼런스 : 에디터에서 전체 오브젝트가 다나온다.
- UClass* : 클래스 레퍼런스 : 에디터에서 모든 클래스가 다나온다.
StaticClass(): 모든 UClass 타입이 가지고 있는 기본형으로 기본적으로 비어있으면 게임이 터지거나 하는 상황을 방지하기 위해서 디폴트 값으로 넣어 놓는다.(권장)TSubclassOf<클래스타입>: 클래스 제한 레퍼런스 : 위처럼 모든 클래스와 오브젝트가 다나오면 오류를 유발할 가능이 높음.
따라서, 지정한 클래스 이하의 클래스만 볼 수 있도록 클래스 타입을 제한할 수 있는 클래스
UWorld
- SpawnActor : 월드에 원하는 타입의 액터를 소환하는 함수
사용 :GetWorld()->SpawnActor<클래스타입>(클래스레퍼런스, 소환할 위치 정보);위치정보 가져오기 :
FVector loctaion; location = GetActorLocation(); //자기 자신의 로케이션 가져오기 FTransform transform; transform.SetLocation(location); //자신의 로케이션 정보를 트랜스 폼 구조체에 저장