본문 바로가기

Unreal/[서적] 언리얼5 이득우님 인프런115

Ch 07. 언리얼 인터페이스 7.1 언리얼 인터페이스 7.1-1 언리얼 C++ 인터페이스 개요 - 인터페이스란 객체가 반드시 구현해야 할 행동을 지정하는데 활용되는 타입 다형성(Polymorphism)의 구현, 의존성이 분리된(Decouple) 설계에 유용하게 활용됨. - 언리얼 엔진에서 게임 컨텐츠를 구성하는 오브젝트의 설계 예시 월드에 배치되는 모든 오브젝트(안움직이는 Actor, 움직이는 Pawn을 포함하는 상위개념) ex. 길찾기 시스템을 반드시 사용하면서 움직이는 오브젝트를 구현하고자 한다면 INavAgentInterface 인터페이스를 구현한 Pawn을 설계해야함. 7.1-2 언리얼 C++ 인터페이스의 특징 - 인터페이스를 생성하면 두 개의 클래스가 생성됨. U로 시작하는 타입 클래스/I로 시작하는 인터페이스 클래스 - .. 2023. 5. 11.
Ch 06. 언리얼 리플렉션 2 6.1 언리얼 리플렉션 시스템 예제 확장 6.1-1 Person 클래스, Student 클래스, Teacher 클래스 - 새 C++ 클래스 > UObject 부모 클래스 > Person/Student/Teacher 클래스 생성 // Person.h #pragma once #include "CoreMinimal.h" #include "UObject/NoExportTypes.h" #include "Person.generated.h" UCLASS() class OBJECTREFLECTION_API UPerson : public UObject { GENERATED_BODY() public: UPerson(); UFUNCTION() virtual void DoLesson(); const FString& GetNa.. 2023. 5. 10.
Ch 05. 언리얼 리플렉션 5.1 언리얼 리플렉션 5.1-1 언리얼 리플렉션의 주요 특징 - 리플렉션은 런타임 중에 자기 자신을 조사하는 기능을 뜻함. 가비지 컬렉션, 리플리케이션, 시리얼라이즈 등의 기능들의 근간을 이룸. - 리플렉션은 언리얼 오브젝트만 가질 수 있음. 일반 C++ 오브젝트는 불가능. - 특정 매크로(UCLASS(), UPROPERTY(), UFUNCTION(), ...)를 프로퍼티나 함수에 작성하면 Unreal Header Tool이 컴파일 타임에 해당 정보를 수집함. - 단, UPROPERTY() 매크로로 지정되지 않은 멤버의 경우에는 언리얼 가비지 컬렉터에 의해 메모리 관리가 되지 않음에 주의. - UHT는 C++ 파서가 아님에 주의. 즉, C++ 소스코드를 읽고 컴파일을 진행하는 프로그램이 아님. 그래서 .. 2023. 5. 10.
Ch 04. 언리얼 오브젝트 4.1 언리얼 오브젝트 소개 4.1-1 게임 프로그래밍의 특수성 - 사용자 관점: 단일 컴퓨터에서 최대 성능이 뽑아져야 쾌적한 경험 가능. - 개발자 관점: 게임의 규모가 커질수록 방대하고 복잡한 기능을 안정적으로 관리해야 함. C++ 언어 (안정성보다 성능 중시. 사용자 관점) 타 OOP 언어 (성능보다 안정성중시. 개발자 관점) Cache의 활용 극대화 / 복사 작업의 최소 유지보수성 향상 저수준 API의 직접 호출 크래시로부터 보호 메모리 직접 제어 자동 메모리 관리 고질적 실수 예방 4.1-2 C++ 언어의 단점 - 하드웨어에 직접 접근 가능하기 때문에 잘못 사용하면 프로그램에 큰 영향을 미침. 이때문에 초급자가 학습하기 어려운 내용들이 많음. - C++ 이후에 개발된 Java, C#의 경우에는 .. 2023. 5. 9.