[공부 내용 정리] 11강 언리얼 컨테이너 라이브러리 - 구조체와 Map
·
언리얼 공부/이득우의 언리얼 프로그래밍
0. 강의 내용 요약TArray: 빈틈없는 메모리, 가장 높은 접근 성능, 가장 높은 순회성능TSet: 빠른 중복 감지TMap: 중복 불허, 키 밸류 관리TMultiMap: 중복 허용, 키 밸류 관리 TArrayTSetTMapTMultiMap접근O(1)O(1)O(1)O(1)검색O(N)O(1)O(1)O(1)삽입O(N)O(1)O(1)O(1)삭제O(N)O(1)O(1)O(1) 더보기구조체와 언리얼 컨테이너 라이브러리1. TArray, TSet, TMap 컨테이너 라이브러리 내부 구조와 활용 방법2. 언리얼 구조체의 선언 방법3. TSet 과 TMap 에서 언리얼 구조체를 사용하기 위해 필요한 함수의 선언과 구현 방법    1. 실습 코드더보기1. 헤더 파일// Fill out your copyright noti..
[공부 내용 정리] 10강 언리얼 컨테이너 라이브러리 I - Array와 Set
·
언리얼 공부/이득우의 언리얼 프로그래밍
0. 강의 내용 요약더보기언리얼 컨테이너 라이브러리1. TArray, TSet 컨테이너 라이브러리 내부 구조와 활용 방법2. 디버그 빌드를 사용해 메모리 정보를 확인하는 방법의 학습3. 두 컨테이너 라이브러리가 가진 특징의 이해더보기자료구조의 시간 복잡도 비교TArray: 빈틈없는 메모리, 가장 높은 접근성능, 가장 높은 순회성능TSet: 빠른 중복 감지 TArrayTSet접근O(1)O(1)검색O(N)O(1)삽입O(N)O(1)삭제O(N)O(1)     1. 실습 코드1.1 MyGameInstance더보기1. 헤더 파일// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMi..
[공부 내용 정리] 9강 언리얼 C++ 설계 III - 델리게이트
·
언리얼 공부/이득우의 언리얼 프로그래밍
0. 강의 내용 요약더보기언리얼 C++ 델리게이트1. 느슨한 결합(Loose Coupling) 이 가지는 장점향후 시스템 변경 사항에 대해 손쉽게 대처할 수 있음.2. 느슨한 결합(Loose Coupling) 으로 구현된 발행 구독 모델의 장점클래스는 자신이 해야 할 작업에만 집중할 수 있음.외부에서 발생한 변경 사항에 대해 영향받지 않음.자신의 기능을 확장하더라도 다른 모듈에 영향을 주지 않음.3. 언리얼 C++ 의 델리게이트의 선언방법과 활용몇 개의 인자를 가지는가?어떤 방식으로 동작하는가? (MULTICAST 사용 유무 결정)언리얼 에디터와 함께 연동할 것인가? (DYNAMIC 사용 유무 결정)이를 조합해 적합한 매크로 선택 데이터 기반의 디자인 패턴을 설계할 때 유용하게 사용    1. 실습 코드..
[공부 내용 정리] 8강 언리얼 C++ 설계 II - 컴포지션
·
언리얼 공부/이득우의 언리얼 프로그래밍
0. 강의 내용 요약더보기컴포지션을 활용한 언리얼 오브젝트 설계언리얼 C++ 은 컴포지션을 구현하는 독특한 패턴이 있다.클래스 기본 객체를 생성하는 생성자 코드를 사용해 복잡한 언리얼 오브젝트를 생성할 수 있음.언리얼 C++ 컴포지션의 Has-A 관계에 사용되는 용어내가 소유한 하위 오브젝트 : Subobject나를 소유한 상위 오브젝트 : Outer언리얼 C++ 이 제공하는 확장 열거형을 사용해 다양한 메타 정보를 넣고 활용할 수 있다.언리얼 C++ 의 컴포지션 기법은 게임의 복잡한 객체를 설계하고 생성할 때 유용하게 사용된다.    1. 실습 코드1.1 MyGameInstance더보기1. 헤더 파일// Fill out your copyright notice in the Description page ..
[공부 내용 정리] 7강 언리얼 C++ 설계 I - 인터페이스
·
언리얼 공부/이득우의 언리얼 프로그래밍
0. 강의 내용 요약언리얼 C++ 인터페이스 1. 클래스가 반드시 구현해야 하는 기능을 지정하는데 사용함. 2. C++ 은 기본적으로 다중상속을 지원하지만, 언리얼 C++ 의 인터페이스를 사용해 가급적 축소된 다중상속의 형태로 구현하는 것이 향후 유지보수에 도움된다. 3. 언리얼 C++ 인터페이스는 두 개의 클래스를 생성한다. 4. 언리얼 C++ 인터페이스는 추상 타입으로 강제되지 않고, 내부에 기본 함수를 구현할 수 있다. 언리얼 C++ 인터페이스를 사용하면, 클래스가 수행해야 할 의무를 명시적으로 지정할 수 있어 좋은 객체 설계를 만드는데 도움을 줄 수 있다.    1. 실습 코드 1.1 MyGameInstance 더보기1. 헤더파일// Fill out your copyright notice in t..
[공부 내용 정리] 5-6강 언리얼 오브젝트 리플렉션 시스템
·
언리얼 공부/이득우의 언리얼 프로그래밍
0. 강의 내용 요약강의 내용을 요약하면 다음과 같다.더보기언리얼 리플렉션 시스템의 활용1. 리플렉션 시스템을 사용해 언리얼 오브젝트의 특정 속성과 함수를 이름으로 검색할 수 있다. 2. 리플렉션 시스템을 사용해 접근 지시자와 무관하게 값을 설정할 수 있다. 3. 리플렉션 시스템을 사용해 언리얼 오브젝트의 함수를 호출할 수 있다. 언리얼 엔진의 기본 프레임웍은 리플렉션을 활용해 구축되어 있으므로 언리얼 엔진을 이해하기 위해서는 리플렉션 시스템을 이해하는 것이 필요함.  1. 실습 코드실습한 내용은 다음과 같다. 1.1 UMyGameInstance더보기1. 헤더파일// Fill out your copyright notice in the Description page of Project Settings.#p..
[공부 내용 정리] 4강 언리얼 오브젝트 기초
·
언리얼 공부/이득우의 언리얼 프로그래밍
0. 언리얼 오브젝트의 이해더보기게임이 대형화되면서 성능과 유지보수 두 가지가 모두 중요해짐언리얼 엔진은 C++ 언어를 확장한 언리얼 오브젝트라는 객체 구조를 고안함지정된 매크로를 사용해 빌드를 수행하면, 추가 코드가 자동으로 만들어지는 구조를 가짐언리얼 오브젝트를 사용해 대규모 게임 제작을 안정적으로 설계하고 구현할 수 있음 1. 소스 코드// Fill out your copyright notice in the Description page of Project Settings.#pragma once// 언리얼 오브젝트가 되기 위해 필요한 헤더 2개#include "CoreMinimal.h"#include "UObject/NoExportTypes.h"// 다른 폴더에 들어있음 // 헤더파일의 수정사항과 ..
[공부 내용 정리] 3강 언리얼 C++ 기본 타입과 문자열
·
언리얼 공부/이득우의 언리얼 프로그래밍
0. 소스 코드// Fill out your copyright notice in the Description page of Project Settings.#include "MyGameInstance.h"void UMyGameInstance::Init(){ Super::Init(); TCHAR LogCharArray[] = TEXT("Hello Unreal"); // TCHAR 배열로 문자열 저장 UE_LOG(LogTemp, Log, LogCharArray); // FString 에 TCHAR 배열 넣기 // TArray 라고 하는 언리얼이 제공하는 동적 배열 클래스 방식으로 문자열이 보관됨 // 동적 배열에서 실제 데이터를 꺼낼 때는 동적 배열이 속하고 있는 내부 자료에 대한 포인터를 가져와서 넘겨줘야 ..
[공부 내용 정리] 2강 언리얼 C++ 코딩규칙
·
언리얼 공부/이득우의 언리얼 프로그래밍
언리얼 코딩규칙: 언리얼 엔진을 위한 에픽 C++ 코딩 표준 | 언리얼 엔진 5.5 문서 | Epic Developer Community  더보기언리얼 엔진 코딩 표준1. public 에서 private 으로 이어지는 클래스 체계(Organization) 를 준수. 2. 명명 규칙파스칼 케이싱을 사용한다.소문자를 가급적 사용하지 않고 공백 및 언더스코어(_) 가 없음모든 클래스와 구조체에는 고유한 접두사가 있음  3. 코드의 명확성 파라미터에 가급적 In 과 Out 접두사를 사용해 명시const 지시자(directive) 의 적극적인 활용레퍼런스를 통한 복사 방지auto 키워드는 가급적 자제  4. Find In Files 의 활용 5. 헤더 파일 및 #include 구문은 의존성을 최소화시켜 주의 깊게..
[공부 내용 정리] 1강 헬로 언리얼!
·
언리얼 공부/이득우의 언리얼 프로그래밍
1. 언리얼 엔진 설치와 프로그래밍 환경 구축생략    2. 언리얼 에디터에서의 클래스 추가더보기1. 언리얼 에디터 창의 Tools 버튼 -> New C++ Class..  2. GameInstance 를 상속받기  3. 자식 클래스의 이름 설정하고 Create    3. 언리얼 C++의 클래스 상속 및 오버라이딩 구현* 주의사항: 비주얼 스크립트 상에서 코드 수정할 때 에디터 꺼놓고 하기더보기1. MyGameInstance 헤더 파일UGameInstance 부모 클래스를 상속받은 UMyGameInstance 이다. 부모 클래스의 Init() 가상 메서드를 상속 받아 오버라이드 한다.  2. UMyGameInstance cpp 파일상속 받은 Init 메서드를 구현한 내용이 들어있다. Init 메서드의 사..