[UE5] 언리얼 240530

라멘커비·2024년 5월 31일
0

Unreal Engine

목록 보기
4/7

UCLASS(내용)

내 클래스를 좀 특별하게 처리해달라.

내 클래스가 에디터에서 보이지 않았으면 좋겠는 등등. 나중에 협업할 때나 필요할 것임

클래스 위에 붙여줘야함. 이걸 안넣으면 언리얼 에디터상에서는 사용할 수 없다.

UFUNCTION

내 함수를 에디터에서 좀 특별하게 처리해달라. 대표적으로 에디터에서 노드형식으로 사용하게 해달라.

min, max값 설정할 수 있는데 블루프린트에서 설정한 민맥스가 코드상에 적용안될거임

그냥 그렇게 중요한 값이면 코드상에 치는게 나음. 근데 그렇다고 exec함수에 직접 치지말라.

UPROPERTY(내용)

변수에 붙이는 디파인

하나의 프로퍼티 옵션들은 , 로 구분되고

변수에서는 조금 더 중요하게 기억해야할 녀석들이 존재한다.

메모리와 관련이 있기 때문에 중요한 변수들은 꼭 UPROPERTY 붙여주는것이 좋다.

Visible 뭐시기들

어디에서 보일거냐를 정의할 수 있다.

이 클래스를 사용할 때 쓸 수 있냐 없냐와 에디터에서 보일거냐 말거냐를 정의할 수 있음.

  • 프로퍼티 및 프로퍼티 창이 뭔가?
    • 어떠한 블루프린트를 열게되면 블루프린트의 세부사항에 있는 한 항목들을 프로퍼티라고 한다.

VisibleAnywhere : 프로퍼티 창에 보임. 보이기만 해라

BlueprintReadOnly : Get함수만 가능. 수정 불가

BlueprintReadWrite : Get, Set 둘다 가능

언리얼에서 알아서 만들어줌. ReadOnly, ReadWrite 둘 다 Get함수가 있고 ReadWrite로 설정한 변수만 Set함수가 있음.

  • 실습 - 내가 친 CPP 코드가 에디터에 어떻게 영향주는지 보기
    중단점 걸어보고 누가 호출했는지 보기 
    
    블루프린트는 CPP에 영향줄수는없음. 
    
    내가 CPP 고친걸 에디터가 바로 적용하려고하는게 라이브코딩. dll을 다시 다 빌드함.

xxxMinimal.h 헤더 내부를 가보면 필수 헤더들 모아놓은 헤더임. 약간 더 기능이 많은 EngineMinimal.h을 사용할 수도 있음.

~~.generated.h 헤더는 위 헤더들을 분석해서 다시 한 번 헤더툴이 정리해주는 헤더. 위쪽 헤더들을 참고해서 또 새로운 헤더에 필요한 코드를 만들어낸 헤더이기 때문에 맨 아래에 놔야함. 어기면 안 됨.


언리얼은 이미 모든 프레임워크의 단계를 완성해놨다.

ex) GameMode는 어느 시점에 만들어진다가 이미 정해져 있음. 내가 그걸 바꿀 수 없음.

우리는 그 기존 클래스들을 상속받는 나만의 클래스를 만들어서 언리얼이 하는 일 + 내가 시키는 일을 끼워넣기 식으로 처리하는 것이다.

Super::BeginPlay() 처럼 언리얼이 기본적으로 뭔가 하는 단계를 빼면 문제가 터짐.

ModuleDirectory

그냥 액터는 주인공아님. 입력못바듬. Pawn을 받아야 키보드 입력 받을 수 있다고 정했음.

AddMovementInput MovementComponent에 움직임 예약하는거. 중력, 모양 등등 다 감안한 움직임을 계산하고 움직여줌.

GEngine→AddOnScreenDebugMessage : 화면에 글자 띄워줌

MoveForward 입력할때만 들어오는게아니고 상시 들어옴??

언리얼은 초당 60프레임 제한걸려있음 그래서 델타타임을 곱해줘야 한다.

레벨에 존재해야한다 ⇒ AActor 생성

위치를 가져야 한다 ⇒ 내부에 SceneComponent를 상속받은 컴포넌트가 하나 들어가 있어야 함.

Static Mesh Renderer ⇒ 애니메이션 없는 매쉬 렌더링하는 렌더러

SkeletalMesh Renderer ⇒ 애니메이션 있는 매쉬를 렌더링하는 렌더러

이미지를 에디터에 끌어다 놓으면 그게 load끝난거임.

텍스처를 사용하기위해 Sprite 만들어야 함.

profile
일단 시작해보자

0개의 댓글