언리얼 18

언리얼C++ - 인터페이스(Interface)

언리얼 C++ 인터페이스인터페이스:객체가 반드시 구현해야할 행동을 지정하는데 활용되는 타입다형성(Polymorhism)의 구현, 의존성이 분리(Decouple)된 설계에 유용하게 활용언리얼 엔진에서 게임 콘텐츠를 구성하는 오브젝트의 설계 예시월드에 배치되는 모든 오브젝트. (움직이지 않은 오브젝트를 포함(Actor))움직이는 오브젝트(Pawn)길찾기 시스템을 반드시 사용하면서 움직이는 오브젝트INavAgentInterface 인터페이스를 구현한 Pawn 언리얼 C++ 인터페이스 특징인터페이스를 생성하면 두 개의 클래스가 생성됨U로 시작하는 타입 클래스I로 시작하는 인터페이스 클래스객체를 설계할 때는 I 인터페이스 클래스를 사용U타입 클래스 정보는 런타임에서 인터페이스 구현 여부를 파악하는 용도실제로 U타..

언리얼C++ - 언리얼 오브젝트 리플렉션 시스템 2

언리얼 오브젝트 리플렉션 시스템을 사용해 언리얼 오브젝트를 다루는 방법 리플렉션 시스템을 사용하면언리얼 오브젝트의 특정 속성과 함수를 이름으로 검색할 수 있음접근 지시자와 무관하게 값을 설정할 수 있음언리얼 오브젝트의 함수를 호출할 수 있음리플렉션 시스템을 반드시 사용하는 것이 바람직한지는 사용하는 사람에 따라 다르나,언리얼 엔진의 기본 프레임웍은 리플렉션을 활용해 구축되어 있으므로 언리얼 엔진을 이해하기 위해서는리플렉션 시스템을 이해해야함// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "UObject/NoExportTypes.h"#i..

언리얼C++ - 언리얼 오브젝트 리플렉션 시스템 1

언리얼 프로퍼티 시스템(리플렉션)프로그램이 실행시간(런타임)에 자기 자신을 조사하는 기능.리플렉션 시스템의 주요 장점리플렉션 시스템이 있어야 여러 속성을 동적으로 관리할 수 있음. 정적 관리 코드가 작성될 때 어떤 값이 설정되거나 고정되어 있음. PlayerName = "bar"; 같은 경우, PlayerName은 "bar"로 고정됨. 코드가 실행될 때마다 "bar"로 설정된 값을 사용동적 관리  프로그램이 실행되는 도중에 다양한 조건에 따라 값이나 속성을 변경하거나 접근할 수 있도록 함. 즉, 미리 고정된 것이 아니라, 상황에 따라 다르게 설정될 수 있음 ex) 게임에서 NPC의 대화 내용 변경, 게임 내 아이템의 속성 변화, 캐릭터 속성 조정 등 코드가 특정 속성이나 메서드를 동적으로 다룰 수 있게 ..

언리얼C++ - 언리얼 오브젝트 기초

게임 프로그래밍의 특수성단일 컴퓨터에서의 최대 성능 발휘, 방대하고 복잡한 기능을 안정적으로 관리 C++안정성보다 성능 중시메모리 직접 제어Cache 활용 극대화저수준 API 직접 호출복사 작업의 최소화후발 주자 언어(JAVA, C#)안정성 중시유지보수성 향상크래시로부터 보호자동 메모리 관리고질적 실수 예방시간이 지날수록 모던 객체 지향 설계의 중요성이 높아짐성능을 위해 기존 C++를 포기할 수 없었기 때문에 언리얼에서 C++의 매크로 기능을 사용해기존 C++를 확장해 모던 객체지향 설계가 가능하도록 만듦. 언리얼 C++메모리 직접 제어Cache 활용 극대화저수준 API 직접 호출복사 작업 최소화유지보수성 향상크래시로부터 보호자동 메모리 관리고질적 실수 예방자체적으로 새로운 시스템 구축언리얼 오브젝트언리..

언리얼C++ - 기본타입과 문자열

왜 언리얼은 기본 타입을 따로 지정하는가?게임 개발은 단일 컴퓨터에서 최대 퍼포먼스를 뽑아내야함. 또한 네트워크 상에서 데이터 통신이 효율적이고 안정적이여야함.캐시 히트율 등을 신경써서 개발해야하는데 플랫폼 파편화로 인해 같은 int형이어도 최소 32비트를 보장하더라도 크기를 확신할 수 없음데이터 타입의 모호함은 개발 시 문제를 일으킬 수 있음후발 언어인 C#의 경우 int타입이 4바이트, 32비트로 명확히 정의되어 있음위의 이유들로 인해 언리얼은 int가 아닌 int32를 사용언리얼 엔진의 기본 데이터 타입과 크기bool- boolean값 (bool크기 추정 금지)TCHAR - charactor (TCHAR크기 추정 금지)uint8 - unsigned byte (1바이트)int8 - signed byt..

언리얼C++ - 언리얼 코딩 규칙

코딩 표준(Coding Standard)코드를 작성하는데 지켜야하는 프로그래밍 이름 규칙, 작성 방법 등을 지정한 가이드라인코딩 스타일(Coding Style), 코딩 컨벤션(Coding Convention)이라고도 함회사나 팀 내의 코딩 규칙을 잘 따라야함,모든 코드는 한 사람이 만든 것처럼 보여져야함.https://google.github.io/styleguide/cppguide.html | 구글 코딩 스타일 Google C++ Style GuideGoogle C++ Style Guide Background C++ is one of the main development languages used by many of Google's open-source projects. As every C++ prog..

Git - .gitIgnore

.gitignore에 등록된 파일들은 걸러져 깃 서버에 올라가지 않는다..git 파일이 있는 폴더에 .gitignore 파일을 추가하고 푸시하면 적용된다. 코드 규칙표준 Glob 패턴으로 작성# : 주석/ : 디렉토리 간 구분! : 이전 패턴을 상쇄하고 해당 파일은 무시하지 않음* : /를 제외한 모든 것? : /를 제외한 한 글자** : 디렉토리 사이의 전체 경로bar : 디렉토리 위치에 관계 없이 bar라는 디렉토리 하위의 파일 혹은 디렉토리만/bar : 현재 디렉토리 (.gitignore 위치) 에 위치한 bar 하위의 파일 혹은 디렉토리만bar/ : bar라는 디렉토리에만 (파일 제외)예)*.bar : 확장자가 .a인 모든 파일 무시folder_name/ : 해당 폴더의 모든 파일 무시folde..

언리얼C++ - 헬로 언리얼!

언리얼 엔진 설치디버깅을 위한 편집기 기호(디버깅 심볼):엔진 소스 코드 디버깅에 필요한 기호 심볼들이 저장되어 있음.엔진 레벨에서 엔진이 어떻게 동작하는지 알기 위해 필요.개발환경 설정에디터VS Code보다는 VS 추천, Visual Assist 플러그인 사용하면 좋음(유료) 이 외에도 Rider 등 사용할 수 있음VS는 디버깅에 좋음, Rider는 빠름VS 2022. ‘C++를 사용한 게임 개발’만으로 언리얼로 개발하는데에는 지장이 없음VS 에러 리스트 표시 옵션 해제Toolbar | StandardModify Selection에서 Solution Configurations 길이 확장1강. 헬로 언리얼! - 언리얼 엔진에서의 C++ 프로그래밍언리얼은 보편적인 게임의 사용자 모드 툴과 같이 기본적으로 ..

반응형