c++

언리얼 엔진/C++

[언리얼엔진/C++] FVector::Parallel (두 벡터가 평행한지 여부 확인)

FVector::Parallel 함수 사용법언리얼 엔진(UE4)의 FVector 클래스는 3D 벡터를 다루기 위한 다양한 기능을 제공합니다. 그 중 FVector::Parallel 함수는 두 벡터가 평행한지 여부를 확인하는 데 사용됩니다.함수 정의static bool Parallel(const FVector& Normal1, const FVector& Normal2, float ParallelCosineThreshold = THRESH_NORMALS_ARE_PARALLEL);// #define UE_THRESH_NORMALS_ARE_PARALLEL (0.999845f) /* Two unit vectors are parallel if abs(A dot B) is greater th..

C++

[C++] Array, List, Map 비교

C++의 Array, List, Map 비교 C++ 프로그래밍을 하다 보면 다양한 데이터 구조를 사용하게 됩니다. 그중 Array, List, Map은 가장 기본적이면서도 중요한 데이터 구조들입니다. 각각의 특징, 장단점, 그리고 사용하기에 적합한 경우를 살펴보겠습니다. Array (배열) 특징 고정 크기의 연속적인 메모리 할당. 인덱스를 통한 빠른 접근 가능. 장점 메모리 상에서 연속적으로 할당되므로, 인덱스를 통한 접근이 빠릅니다. 단점 크기가 고정되어 있어, 배열을 선언한 후에는 크기를 변경할 수 없습니다. 요소를 추가하거나 삭제하는 데 비효율적입니다. 적합한 사용 예 요소의 개수가 변하지 않는 경우. 인덱스를 통한 요소 접근이 자주 일어나는 경우. int myArray[10]; // 정수 10개를..

C++

[C++] Stack Overflow

C++에서의 스택 오버플로우(Stack Overflow) 현상과 해결 방법 스택 오버플로우는 프로그래밍에서 흔히 마주치는 오류 중 하나로, 특히 메모리 관리가 중요한 C++에서 주의 깊게 다뤄야 하는 이슈입니다. 이 글에서는 C++에서 스택 오버플로우가 발생하는 원인과 이를 해결하기 위한 실질적인 방법들에 대해 살펴보겠습니다. 스택 오버플로우란? 스택 오버플로우는 프로그램이 할당받은 스택 메모리를 초과하여 사용할 때 발생하는 오류입니다. 스택 메모리는 함수의 호출과 로컬 변수 저장에 사용되는데, 이 메모리 영역의 크기는 제한되어 있습니다. 따라서 너무 많은 함수 호출이 중첩되거나, 큰 크기의 로컬 변수를 선언하는 경우 스택 오버플로우가 발생할 수 있습니다. 원인 1. 깊은 함수 호출 재귀 함수에서 베이스..

C++

[C++] Call Stack

C++에서 콜스택(Call Stack) 이해하기 콜스택(Call Stack)은 프로그램 내에서 함수의 호출과 실행 정보를 관리하는 중요한 자료구조입니다. C++ 개발을 하다 보면 함수가 다른 함수를 호출하고, 그 함수가 또 다른 함수를 호출하는 과정에서 프로그램의 실행 흐름을 정확히 이해할 필요가 있습니다. 이번 포스트에서는 C++에서 콜스택의 개념을 이해하고, 콜스택이 어떻게 작동하는지에 대해 자세히 살펴보겠습니다. 콜스택이란? 콜스택은 프로그램에서 함수의 호출과 그 함수에 대한 정보를 후입선출(LIFO, Last In First Out) 방식으로 저장하는 스택(Stack) 구조의 자료구조입니다. 함수가 다른 함수를 호출할 때마다 호출된 함수에 대한 정보(반환 주소, 매개변수, 지역 변수 등)가 스택에..

언리얼 엔진/C++

[언리얼엔진/UE] 프로그램 인스턴스 체크

인사말 안녕하세요. 이번 포스트에서는 언리얼엔진에서 패키징한 프로그램(.exe)가 윈도우상에서 1개만 존재하는지 체크하고 2개 이상의 프로그램이 중복으로 실행되지 않도록 하는 것에 대해 작성하겠습니다. 사용법 아래의 코드를 참고해서 GameInstace 의 초기화 부분에 함수 또는 코드블럭을 작성해서 넣어주면 게임(프로그램)이 실행될 때 인스턴스를 체크해서 프로그램이 1개만 실행되도록 합니다. 코드 const UGeneralProjectSettings& ProjectSettings = *GetDefault(); const FString LockFilePath = FPlatformProcess::UserTempDir() + ProjectSettings.ProjectID.ToString(); if (!IFi..

Deny

Devlog - Deny | Dismemberment | Unreal Engine 5 | 언리얼엔진

인사말 안녕하세요, 이번 포스트에서는 개인 프로젝트 Deny 에서 데미지를 입으면 메시가 절단되는 작업을 진행하였습니다. 영상 https://youtu.be/FIxcPlKRuXc?si=NT8-k-YLJpjcCDNK

mane
'c++' 태그의 글 목록