개발 161

언리얼 C++ - Actor의 라이프 사이클

로그 찍기툴바의 Window에서 Output Log 체크하기 LogTemp같은 로그 카테고리 만드는 법// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" // 언리얼 엔진의 기본 타입#include "GameFramework/Actor.h" // 액터에 대한 정보를 가지고 있는 헤더파일#include "Item.generated.h" // 리플렉션 시스템에 관련한 헤더 파일DECLARE_LOG_CATEGORY_EXTERN(LogSparta, Warning, All);UCLASS() // 리플렉션 시스템에 등록해주는 키워드// SPARTAPROJECT_..

언리얼 C++ - Actor 클래스에 컴포넌트 추가하기

언리얼 엔진 C++에서는 클래스 이름에 접두사를 붙이는 접두사 규칙이 있다.A (Actor 계열)U (Object 계열)F (구조체)T (템플릿)E (열거형)// ❌ NewObject - 런타임 생성 (생성자에서 사용 안 됨)UMyComponent* Comp = NewObject();// ✅ CreateDefaultSubobject - 생성자에서만 사용UMyComponent* Comp = CreateDefaultSubobject(TEXT("MyComp"));기본 Actor 상속으로 만들었던 Item.h 파일로 보는 구조// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreM..

카테고리 없음 2026.04.11

언리얼 C++ - Actor 클래스 생성 및 삭제

1️⃣ Object (UObject)의 개념UObject는 언리얼 엔진에서 모든 클래스의 최상위 부모 클래스.스스로 월드(레벨)에 배치될 수 없다. 주로 데이터나 로직만 담당한다.예: 플레이어 능력치(HP, 경험치), AI 정보, 게임 설정 값, 임시 계산 로직 등주로 화면에 보이지 않는 데이터나 로직을 처리한다.2️⃣ Actor (AActor)의 개념AActor는 UObject를 상속한 클래스로, 월드에 배치(Spawn) 할 수 있다.위치, 회전, 크기 등 공간적 정보를 가지고 있고, 여러 컴포넌트 (Component)를 추가로 붙일 수 있다.)실제 게임 세계에서 보이고 상호작용하는 캐릭터, 적 몬스터, 무기, 조명, 파티클 효과 등은 주로 AActor를 기반으로 제작한다. 언리얼에서 public으로 ..

C++ 기초 - 구조체 집합 초기화, 포인터 매개변수, 연속 선언, array

구조체 집합 초기화 (aggregate initialization)다음과 같은 조건을 충족하면 클래스나 구조체나 선언시에 값 매핑하여 생성할 수있다. 사용자 정의 생성자 없음private/protected 멤버 없음virtual 없음base class 없음 (C++ 버전에 따라 완화됨)struct Point { int x; int y;};Point a = {1, 2};이는 기본적으로 선언된 순서대로 매핑됨 포인터 매개변수포인터를 매개 변수로 받을 때는 포인터가 복사된다.void func(Point* p) { // 포인터를 값으로 받음 → 복사! p->x = 99; // 복사본 p로 원본 a.x 수정 → 영향 O p = nullptr; // 복사본 p만 n..

언리얼 엔진 심화 1주차 - 리플렉션/UHT/UBT/CDO

시작하기 전에 - 어떤 코드가 좋은 코드인가변수명 직관적으로 정하기중복 코드 피하기긴 함수 지양하기 리플렉션이란?실행 중에 프로그램이 자기 자신의 구조를 인지하고 조작할 수 있는 능력. 메타데이터로 블루프린트와 C++ 코드 사이를 연결해준다. 리플렉션 매크로UCLASS: 클래스를 언리얼에 등록UPROPERTY: 변수를 에디터에 노출UFUNCTION: 함수를 블루프린트에 연결프로퍼티 지정자 목록https://dev.epicgames.com/documentation/unreal-engine/property-specifiers?application_version=4.27 Property Specifiers | Unreal Engine 4.27 Documentation | Epic Developer Commun..

C++ 기초 - enum class, auto, default, delete, final, override, 람다 함수

고정폭 정수형고정폭 정수형은 정수 자료형의 크기를 보장한다. 표준형에서 쓰인 애매한 표기들을 정확하게 표현하기 위하여 만들어졌다.int8_t Score = Human01->GetID(); C++11에서는 아래와 같은 고정폭 정수형 자료형이 지원된다.int8_t / uint8_tint16_t / uint16_tint32_t / uint32_tint64_t / uint64_tintptr_t / uintptr_t enum기존 enum은 enum 멤버를 int형 변수에 대입하거나 다른 enum 멤버와의 비교가 가능하여 엉망이 될 수 있었다.// main.cppenum EPosition { TOP, JUNGLE, MID, SUPPORT, BOTTOM};enum EChamp { LE..

TA 코스 1주차 정리

컴퓨터 그래픽스 용어 및 설명렌더링 파이프라인렌더링 파이프라인은 3D 데이터를 모니터에 뿌려질 2D 픽셀로 만드는 과정이다.애플리케이션 단계, 기하 단계, 래스터화 단계, 픽셀 단계로 4가지가 있다.애플리케이션 단계(Application Stage)CPU가 명령을 내리는 단계.주요 작업: 드로우콜(Draw Call) 준비, 충돌 감지, 가시성 판단(화면에 안 보이는 물체 거르기).결과물: 이 정점(Vertex) 데이터들을 이런 설정으로 그리라는 명령이 GPU로 넘어간다.기하 단계 (Geometry Stage)여기서부터는 GPU가 주도하며, 3D 공간 상의 계산이 이뤄지는 단계.정점 셰이더(Vertex Shader): 3D 모델의 각 점(정점) 위치를 계산한다. (회전, 이동, 크기 조절 등)좌표계 변환:..

언리얼 C++ - 빌드 프로세스 이해하기

VS에서는 언리얼의 폴더 구조를 가상 구조로 재구성해놓았다. Engine언리얼 엔진 자체의 코드. 언리얼 엔진의 코어 코드라고도 부름. 커스터마이징할 때 사용. Games기본적인 작업 폴더. 소스코드를 이 안에 작성함. Programs서버 모듈이나 유틸리티같은 것들이 담겨 있는 폴더 Rules엔진과 각 게임 모듈의 빌드 규칙을 담아놓은 폴더 Visuallizers디버깅 시 언리얼의 자료구조를 편하게 하기 위한 자료들이 담겨 있음 빌드 프로세스빌드(컴파일 + 링크) -> DLL 파일 -> 언리얼 에디터언리얼 에디터가 DLL 파일을 로드하기 때문에 빌드를 꼭 해줘야한다. PC 개발 설정은 Development Editor, Win64로 하면 된다. 솔루션 빌드는 전체 빌드로 진행된다. 전체 빌드의 ..

C++ 기초 - STL(Standard Template Library)

STL메모리 자동 관리가 제공되는 자료구조 라이브러리.템플릿 프로그래밍 기반이라, 다양한 자료형의 데이터들을 저장.STL 자료구조에는 벡터(Vector) / 맵(Map) / 셋(Set) / 스택(Statck) / 큐(Queue) / 리스트(List) 등이 있음.벡터와 맵 정도만 쓰이고, 셋이 아주 가끔 쓰이는 편.다른 말로는 컨테이너라고도 함. STL 대체품언리얼 엔진 객체들의 전용 컨테이너TArray, TMap, TMultiMap, TsetEA의 EASTLSTL과 호환메모리 등을 고친 컨테이너 벡터(Vector)데이터 개수가 증가함에 따라 자동으로 메모리를 관리해주는 배열동적 배열배열이기 때문에 그 안에 저장된 모든 요소들은 연속된 메모리 공간에 위치어떤 요소에도 임의로 접근(Random Access)..

C++ 기초 - 템플릿 프로그래밍

템플릿 사용법// Main.cpp#include templateT Add(T InA, T InB){ return InA + InB;}int main(){ std::cout (1, 2) (1.f, 2.f) 템플릿을 인스턴스화 할 때마다 컴파일러가 내부적으로 코드를 생성함.// Main.cpp#include template // T에 자료형 인자(int, float, ...)를 전달할 때마다 템플릿 인스턴스(코드)가 생성됨.T Add(T InA, T InB) { return InA + InB;}int main(){ std::cout (1, 2) (1.f, 2.f) // Main.cpp#include int Add(int InA, int InB) // int 자료형 템플릿 인스턴스(코드) 생성...