
헬로 언리얼 문자열을 에디터에 찍기.새 클래스 MyGameInstance를 만든다.GameInstance::virtual void Init(); 함수를 활용할 땐(가상 함수를 오버라이딩 할 때) 꼭 Super::Init();를 반드시 써서 부모 클래스가 구현한 로직을
https://docs.unrealengine.com/5.3/ko/epic-cplusplus-coding-standard-for-unreal-engine/코딩 표준을 정하고 프로젝트의 모든 코드가 한 사람이 만든 것 처럼 통일된 방식으로 코딩을 작성해야 한다.
기본 타입과 고려할 점캐릭터 인코딩 시스템문자열 처리 방법과 내부 구성플랫폼 파편화: 예: C++의 주요한 함수가 특정 플랫폼에서 다르게 동작, int형의 크기(최소 32bit) 확신할 수 없음, 네트워크 상에서 데이터 통신이 효율적이고 안정적이기 위해서는 데이터 정보

게임 프로그래밍이 가지는 특수성과 언리얼 오브젝트의 필요성의 이해언리얼 오브젝트의 선언과 엔진 내부 컴파일 과정의 이해성능과 안정성이라는 두 마리 토끼를 잡아야 한다.(우선은 성능.)C++: 안정성보다 성능중시메모리 직접 제어캐시의 활용저수준 API의 직접 호출복사 작
언리얼 오브젝트의 특징과 리플렉션 시스템의 이해언리얼 오브젝트의 처리 방식의 이해프로그램이 실행시간에 자기 자신을 조사하는 기능.파일 상단에 특수한 include 를 추가해 주면 리플렉션이 있는 유형을 이 파일을 고려해야 함을, UHT 에 알려준다.관리되는 클래스 멤버

언리얼 오브젝트 리플렉션 시스템을 사용해 언리얼 오브젝트를 다룸리플렉션 시스템을 사용해 언리얼 오브젝트의 속성과 함수를 이름으로 검색해서 정보를 가져올 수 있다.리플렉션 시스템을 사용해 접근 지시자와 무관하게 값을 설정할 수 있다.리플렉션 시스템을 사용해 언리얼 오브젝
언리얼 C++ 인터페이스 클래스를 사용해 안정적으로 클래스를 설계.설계 예시Actor: 월드에 배치되는 모든 오브젝트.(안 움직이는 오브젝트 포함)Pawn: 움직이는 오브젝트INavAgentInterface 인터페이스를 구현한 Pawn: 길찾기 시스템을 반드시 사용하면

언리얼 C++의 컴포지션 기법을 사용해 오브젝트 포함 관계 설계언리얼 C++이 제공하는 확장 열거형 타입의 선언과 활용
.

클래스 설계MyGameInstance: 객체 생성, 로그를 통해 동작 확인.Person멤버: Name, Subscribe 컴포지션, Getter(), Setter().WatchInterface멤버: DoWatch().Subscriber: Person 상속, WatchI
UCL(Unreal Container Library)언리얼 엔진이 자체 제작해 제공하는 자료구조 라이브러리실제 게임 제작에 유용하게 사용되는 라이브러리: TArray, TMap, TSetT: Template LibraryTMap, TSet의 이름과 용도는 map, se
데이터 저장, 전송에 특화된 가벼운 객체대부분 GENERATE_BODY() 매크로를 선언해준다.리플렉션, 직렬화와 같은 유용한 기능을 지원함.GENERATE_BODY()를 선언한 구조체는 UScriptStruct 클래스로 구현됨.이 경우 제한적으로 리플렉션을 지원함속성
잘못된 포인터 사용 예시Leak, Dangling, WildJava, C---동적으로 생성된 모든 오브젝트 정보를 모아둔 저장소를 사용해 사용되지 않는 메모리를 추적마크-스윕(Mark-Sweep) 방식의 가비지 컬렉션저장소에서 최초 검색을 시작하는 루트 오브젝트를 표기
오브젝트나 연결된 오브젝트의 묶음을 바이트 스트림으로 변환하는 과정복잡한 데이터를 일렬로 세움시리얼라이제이션: 오브젝트 그래프에서 바이트 스트림으로디시리얼라이제이션: 바이트 스트림에서 오브젝트 그래프로직렬화 시스템을 위해 제공하는 클래스 FArchive와 연산자아카이브
단일 언리얼 오브젝트가 가진 정보는 저장할 수 있지만, 오브젝트들이 조합되어 있다면?저장된 언리얼 오브젝트 데이터를 효과적으로 찾고 관리하는 방법은?복잡한 계층 구조를 가진 언리얼 오브젝트를 효과적으로 저장과 불러들이는 방법을 통일해야 함.언리얼 엔진은 패키지(UPac
언리얼 빌드 시스템