반응형

언리얼 7

[Unreal] 인터페이스

앞서 이 포스팅은 이득우의 언리얼 프로그래밍 Part1을 수강하고 작성한 내용입니다. 개요 인터페이스는 객체가 반드시 구현해야 하는 행동을 지정하는데 활용된다. 다형성을 구현하거나 디커플링을 하는데 유용하게 활용할 수 있다. 언리얼 C++ 인터페이스의 특징 인터페이스를 생성하면 두 개의 클래스가 생성된다. U로 시작하는 타입 클래스와 I로 시작하는 인터페이스 클래스가 있다. UInterface는 클래스 타입정보를 제공하고, IInterface는 실질적인 설계 및 구현을 담당한다. Java나 C#에서 인터페이스는 추상 타입으로만 선언할 수 있지만, 언리얼에서는 인터페이스도 구현이 가능하다. 언리얼 C++ 인터페이스 인터페이스 C++ 클래스를 만들면 다음과 같은 2개의 클래스가 만들어져 있다. 1. UINT..

[Unreal] 언리얼 오브젝트

앞서 이 포스팅은 이득우의 언리얼 프로그래밍 Part1을 수강하고 작성한 내용입니다. 개요 C++과 C#이나 JAVA와 같은 하이레벨 언어를 비교하면 다음과 같다. C++의 특징 메모리를 직접 제어 캐시 활용 극대화 저수준 API 호출 복사 작업 최소화 하이레벨 언어의 특징 유지보수성 향상 크래시로부터 보호 자동 메모리 관리 고질적 실수 예방 언리얼 오브젝트 언리얼 C++은 C++의 특징을 가지면서도 하이레벨 언어의 장점을 흡수하고자 했다. 이런 내부적인 기능을 자동으로 만들어질 수 있도록 UClASS() 매크로를 사용해줘야 한다. UCLASS()에는 클래스를 정의하는 프로퍼티와 함수 세트가 들어있다. 언리얼에서는 일반 C++ 오브젝트와 언리얼 오브젝트 모두 사용 가능하다. 일반 C++ 오브로젝트에는 접..

[Unreal] 언리얼 C++ 코딩 표준

클래스 체계 public을 선언 후 private 구현이 따라야 한다. -> 읽는 사람의 대부분은 클래스의 public 인터페이스를 사용하기 때문 명명 규칙 언리얼 엔진은 대부분 파스칼 케이싱을 사용, 단어 사이의 언더스코어( _ )를 사용하지 않음. 타입 이름에는 대문자로 이루어진 접두사를 포함하여 변수 이름과 구분함. 예를 들어서, FSkin은 타입 이름이고, Skin은 FSkin의 인스턴스임. 예시 UObject를 상속받으면 접두사 U를 사용 AActor를 상속받으면 (Actor는 UObject를 상속받았지만) 접두사 A 사용 SWidget(UI 관련)에서 상속받으면 접두사 S를 사용 추상 인터페이스 클래스에는 접두사 I를 사용 템플릿 클래스는 T 열거형은 E사용 bool변수는 예외적으로 소문자 b..

[Unreal] 언리얼 오브젝트

언리얼 오브젝트는 언리얼 실행 환경에 의해 관리되는 C++ 객체이다. 언리얼 오브젝트는 사용자가 명시적으로 객체를 소멸시키지 않아도 할당된 메모리를 자동으로 소멸시켜 준다. 콘텐츠를 구성하는 객체들은 모두 언리얼 오브젝트로 볼 수 있다. C++ 클래스가 언리얼 오브젝트가 되려면 클래스 선언에 매크로와 규칙을 추가해야한다. 1. 클래스 선언 윗줄에 UCLASS() 매크로를 추가해야 한다. 2. 클래스 내부에 GENERATED_BODY 매크로 선언해야 한다. 3. 클래스 이름 접두사에 U나 A등을 사용해야 한다. U는 액터가 아닌 클래스, A는 액터 클래스에 사용한다. 4. 마지막 #include 구문에 generated.h 헤더 파일을 추가 해야 한다. 5. 클래스 선언 앞에 모듈명_API 키워드를 추가해..

[Unreal] -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDERunning UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll"

개요 언리얼 5.1 CPP 프로젝트를 만들다가 발생한 오류 -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" 엔진 재설치를 해도 같은 문제가 발생했었는데... shader.h 파일을 찾지 못해 컴파일 에러가 발생하는 것을 볼 수 있었고 아무래도 경로가 ???으로 뜨는거 보니 경로문제가 아닌가 싶었다. 프로젝트 생성 경로에 한글이 있어서 발생하는 문제였다. 아직 한글 경로를 설정하고 있는 나 자신에게 실망하고 간다. 경로를 바꾸어주니 해결 완료!

[Unreal] 프로젝트 구성 폴더

개요 언리얼의 프로젝트 구성 폴더에 대해 정리한다. Config : 프로젝트의 설정 값을 보관한다. 폴더 안의 내용이 삭제되면 프로젝트의 설정 정보가 없어지므로 잘 관리해야 한다. Content : 프로젝트에 사용되는 애셋들을 관리하는 공간이다. Intermediate : 프로젝트에 필요한 임시 파일들을 저장한다. 폴더 안의 내용을 삭제해도 에디터를 실행하면 자동으로 재생성된다. Saved : 에디터 작업 중에 생성된 세이브 파일, 스크린샷 등의 결과물을 저장한다. 폴더 안의 내용을 삭제해도 게임 프로젝트에는 영향을 주지 않는다. uproject 파일에는 게임 프로젝트 정보가 JSON 형태로 저장되어 있다. C++ 프로젝트로 확장하는 경우 새로운 폴더들이 추가된다. Binaries : C++ 코드가 컴파..

[Unreal] 용어 구분

유니티 개발자를 위한 언리얼 엔진 4 유니티 개발자를 위한 언리얼 엔진 4 유니티 사용자분들의 빠른 적응을 도울 수 있도록 유니티 지식을 UE4 로 옮겨봅니다. docs.unrealengine.com 개요 학교 프로젝트, 게임잼, 연합 동아리 등등에서 유니티 및 언리얼 엔진을 모두 사용했었는데, 용어가 비슷하면서도 소소하게 달라 해당 내용을 정리한다. 에디터 내용을 비교하면 위와 같다. 유니티 언리얼 씬(SCENE) 뷰포트(VIEWPORT) 하이러라키(HIERARCHY) 월드 아웃라이너(WORLD OUTLINER) 인스펙터(INSPECTOR) 디테일(DETAILS) 프로젝트(PROJECT) 콘텐츠 브라우저(CONTENT BROWSER) 툴 바 (TOOLBAR) 모드 툴 바 (MODES TOOLBAR) 인..

반응형