블루프린트 사용한다? ⇒ 에디터에서 모든 걸 해결했다. VS를 사용할 필요가 없음. 근데 반복문부터 노드로 만들면 짜증나고 이해하기 힘들다고 함.
레벨 오픈하면 생성,
레벨 전환하면 파괴
생성 레벨과 함께 생성
레벨과 함께 파괴
생명 주기가 ULevel과 AGameMode는 비슷하다.
AActor를 상속받는 APawn
지형과 상호작용 등등을 지원. 기본 충돌기능, 이동 및 길찾기 등등에 필요한 기능을 내부에 다 보유하고 있다.(이거 안쓸거라고하심)
언리얼에서 플레이어가 이입할 수 있는 주인공으로서 만드는 애. 여러 개 만들 수 있음. 레벨 화면에 끌어다 놓기만 해도 만들어짐.
월드세팅에 디폴트 폰 클래스
는 언리얼이 얘가 주인공이겠네- 하고 딱 1개 대신 만들어줌. 그리고 카메라가 걔를 따라다니게 해줌.
GameMode의 BeginPlay가 먼저 실행되고 Pawn의 BeginPlay가 실행됨
lib ⇒ 내 exe파일과 lib의 코드가 완전히 1개가 돼서 exe파일이 나온다.
dll ⇒ os가 dll코드를 가지고 있고 내가 실행될 때 빌려서 사용하는 개념. 중간에 사용하다가 언로드를 할 수가 있다. 그리고 dll로 만든다고 lib로 안나오는게 아님. dll로 바꾸면 pragma comments 로 읽어오는게 안댐.
dll에 존재하는 함수들에게 선언은 했지만 아래에 공개하고 싶지 않은 함수들이 있을 수 있음. 공개하고 싶은 애들은 클래스명 앞에 __declspec(dllimport)
붙여서 머시기 함…. 그대신 공개할 모든 함수에 붙여야 함.
그래서 언리얼엔진에 defaultPawn 코드 보면 define으로 줄여서 dllimport들이 붙어있음. (엔진은 dll이니까)
→ 그래서 defaultPawn 베껴올 때 나는 dllimport 안붙여도됨. 내가만든함수 나만쓰니까. 언리얼 엔진은 쓸 가능성들이 있으니까 붙이는거고 나는 붙일필요가 없음.
언리얼에서 불완전한 형식을 보게되면 그냥 구글에 검색하면 바로 공식 문서 나옴. include문까지 다 알려줌.
나중에 CDO라는것도 알려주신다는데 그게 몰까,,,
사진 첨부
UFUNCTION
MyMove로 알아본거긴한데
Forward로 가는게 X축 좌우가 Y축 위아래가 Z축
VS 인테그레이션 툴인데 거의 필수로 설치하라고 하심.
자기가 직접 헤더 만들어서 복붙하거나 배우지않은 다른 경로로 C++파일 만들기 → 2주간 하지마세요
#include “MyPawn.generated.h”
언리얼에서 자동으로 만들어줌. 위치를 맘대로 위로 올리면 안됨.
UCLASS()
, 프로젝트명_API
, GENERATED_BODY()
: 셋다 바꾸지 말기. 헤더툴때문임. 언리얼에서 클래스로 인정(?)하기 위해 필요한것들
언리얼 헤더툴이란 코드치는 프로그램. 템플릿과 비슷하다?
지금 컨텐츠 프로젝트의 헤더를 싹다 읽음.
UCLASS()가 있다면 그부분을 바꿔버린다.
편집 > 프로젝트 세팅
: 프로젝트의 모든 세부사항에 대해서 설정할 수 있음.
맵&모드
: 에디터 시작맵 (에디터 처음 켜질 때 맵), 게임 기본 맵(빌드해서 만들었을 때의 기본 맵)이벤트그래프 노드에서 뭔가 수정했다면 꼭 컴파일 누르고 저장하고 실행해야 적용됨.
그리고 디버그 중지로 끄지말고 X눌러서 끄는 습관 들이기