본문 바로가기
반응형

분류 전체보기424

Unreal C++ 헤더 포함 Header Include [Unreal/C++] 헤더 포함 Header Include 언리얼 엔진에서의 프로그래밍은 C++ 기반으로 구성되어 있기 때문에다른 헤더 파일에 정의된 C++ 클래스나 기능을 사용하기 위해서는 헤더 파일을 포함하는 전처리가 필수적이다.일반적인 C++ 프로젝트에서는 헤더가 꼬이거나 중복 호출 되는 경우만 조심하면 되지만언리얼에서는 헤도 포함시 위치가 중요하다. generated.h 아래에 헤더를 포함시킬 경우 아래와 같은 에러가 발생한다. #include found after .generated.h file - the .generated.h file should always be the last #include in a header.generated.h 파일 뒤에 #include가 있습니다..generat.. 2023. 10. 24.
Unreal C++, 라이브 코딩 컴파일 [Unreal] C++, 라이브 코딩 컴파일 라이브 코딩 컴파일 방법단축키 Ctrl + Alt + F11개인적으로 라이브 코딩을 선호하지 않는다.라이브 코딩을 사용하지 않고 Visual Studio에서 컴파일 하는 편이 좋다.-> 빠르고 오류도 적다. 라이브 코딩 비활성화 방법상단 메뉴바에서 편집 -> 에디터 개인설정 -> 라이브 코딩 -> 라이브 코딩 활성화 체크 해제라이브 코딩 비활성화 방법 (간편)우측 하단에 컴파일 옵션 메뉴를 열고 라이브 코딩 활성화를 체크 해제 한다. 비활성화 후 Visual Studio에서 솔루션 빌드를 하면 짤랑거리는 소리가 나며 컴파일이 완료된다.   라이브 코딩이 활성화 되어 있는 경우Visual Studio에서 컴파일을 시도하면Unable to delete hot-re.. 2023. 10. 23.
Unreal C++ 클래스 폴더&파일 생성, 삭제, [Unreal/C++] 클래스 폴더&파일 생성, 삭제,  생성폴더는 클래스를 생성하면서 만들거나파일탐색기에서 미리 생성해 둔 후 클래스 파일을 만들 때 경로를 지정해 준다.클래스 폴더는 콘텐츠 브라우저 내에서 생성이 안된다.* 빈 폴더는 언리얼 에디터 (콘텐츠 브라우저)에 표시되지 않는다.  삭제콘텐츠 브라우저에서 삭제 불가1. 엔진 에디터 종료2. Visual Studio 내에서 제거 삭제3. 파일 탐색기에서 삭제4. Visual Studio 빌드->솔루션 빌드5. 엔진 실행   이동1. 엔진 종료2. 파일 탐색기에서 파일 정리3. 프로젝트 폴더에서 솔루션 파일(.sln) 삭제4. ProjectName.uproject 우클릭 후 Generate Visual Studio project file 실행5. .. 2023. 10. 22.
Unreal Error C1083 포함 파일을 열 수 없습니다. [Unreal/Error] C1083 포함 파일을 열 수 없습니다. 초기에 C++ 클래스 파일 생성 후 나타나는 에러 중 하나프로젝트에서 해당 경로를 찾지 못해 나타나는 증상클래스 폴더 경로를 지정해 주면 된다. unreal 폴더 생성Missing {ProjectName} ModulesThe following modules are missing or built with a different engine version: {ProjectName}Would you like to rebuild them now? Error{ProjectName} could not be compiled. Try rebuilding from source manually. 프로젝트 폴더 내에 있는 {ProjectName}.Build... 2023. 10. 22.
Unreal 언리얼 프로젝트 폴더 구조 [Unreal] 언리얼 프로젝트 폴더 구조 프로젝트를 생성할 때 옵션빈 프로젝트최대 퀄리티시작용 콘텐츠 포함하지 않음레이트레이싱 사용 안함 블루프린트 기반 프로젝트프로젝트명.uprojectConfigContentSavedIntermediateBuild (빌드하면 생기는 파일)Plugins (옵션) C++ 기반 소스가 포함된 프로젝트프로젝트명.uprojectConfigContentSavedIntermediateBuild (빌드하면 생기는 파일)SourceBinaries.vs프로젝트명.slnPlugins (옵션) ※ 기본 프로젝트 생성 시 Blueprint와 C++ 프로젝트의 용량이 다른 이유는 Intermediate 폴더에 들어있는 엔진 소스 라이브러리가 포함이 되어 프로젝트 빌드가 되기 때문에 용량이 크.. 2023. 10. 5.
Unreal C++ vs 블루프린트 [Unreal] C++ vs 블루프린트 C++ 클래스 장점빠른 런타임 퍼포먼스: 일반적으로 C++ 로직은 블루프린트 로직보다 훨씬 빠릅니다. 이유는 다음과 같습니다.명확한 디자인: C++ 에서 변수나 함수를 노출하면 세밀한 제어를 통해 원하는 것을 정확히 노출할 수 있으므로, 특정 함수/변수를 보호하고 클래스의 공식 "API"를 만들 수 있습니다. 따라서 지나치게 크고 따라잡기 어려운 블루프린트를 만들지 않아도 됩니다.광범위한 액세스: C++ 에서 정의(하고 제대로 노출)한 함수와 변수는 다른 모든 시스템에서 액세스할 수 있어, 여러 시스템 사이 정보 전달에 완벽합니다. 또한, C++ 에는 블루프린트보다 많은 엔진 함수 기능이 노출되어 있습니다.더 많은 데이터 제어: C++ 에서는 데이터 저장과 로드 관.. 2023. 10. 5.
KD-트리 (K-Dimensional Tree) [k-차원 트리] KD-트리 (K-Dimensional Tree) [k-차원 트리] KD-트리는 이진 탐색 트리를 확장한 것으로 k개(k>=2)의 필드로 이루어지는 키를 사용한다. 동일한 레벨에 있는 노드는 모두 동일한 하나의 필드만 이용해서 분기한다 KD-트리에서 검색을 이용해 내려간다는 것은 다차원 공간에서 이렇게 나누어진 결과에 따라 공간의 범위를 점점 좁혀나가는 것이다. 3차원일 경우 입체적인 형상이 된다. KD-트리 삽입 A(50, 50) → B(10, 70) → C(80, 85) → D(25, 20) → E(40, 85) → F(70, 85) → G(10, 60) 1. A(50, 50)이 루트 자리를 차지 2. B(10, 70)는 x값 10이 루트의 x값 50보다 작으므로 왼쪽 자식이 된다 3. C(80, 85.. 2023. 10. 3.
B-트리 (B-Tree) B-트리 (B-Tree) B-트리(B-tree)는 데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의 일종으로, 이진 트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 트리 구조이다. B-트리는 디스크 환경에서 사용하기에 적합한 외부 다진 검색 트리이다. B-트리는 자료를 정렬된 상태로 보관하고, 삽입 및 삭제를 대수 시간으로 할 수 있다. 최대 M개의 자식을 가질 수 있는 B-트리를 M차 B-트리라고 한다. 노드는 최대 M개의 자식 노드를 가질 수 있다. ex) 3차 B-트리라면 최대 3개의 자식 노드를 가질 수 있다. 노드에는 최대 M-1개의 KEY를 가질 수 있다. ex) 3차 B-트리라면 최대 2개의 KEY를 가질 수 있다. 각 노드는 최소 ⌈M/2⌉개의 자식.. 2023. 10. 3.
레드 블랙 트리 (Red-Black Tree) 레드 블랙 트리 (Red-Black Tree) 이진 탐색 트리에서 트리의 모양이 균형을 이루지 못 할 경우가 있다. 균형이 깨질 경우 O(n)에 근접한 시간이 소요되는데, 균형을 잘 맞추기 위해 고안된 것이 레드-블랙 트리이다. 레드-블랙 트리는 자가 균형 이진 탐색 트리이다. 리프 노드가 개입될 때 특수 처리를 하지 않아도 된다는 편리함이 있다. 레드-블랙 트리는 다음과 같은 조건들을 만족한다. 1. 루트 노드는 검은색이다. 2. 모든 노드는 레드 혹은 블랙이다. 3. 모든 리프 노드(NIL)들은 검은색이다. (NIL : null, 자료를 갖지 않고 트리의 끝을 나타내는 노드) 4. 레드 노드의 자식은 블랙이다. (레드 노드가 연속으로 나올 수 없다) 5. 리프노드에서 루트 노드까지 가는 경로에서 만나.. 2023. 10. 2.
이진 탐색 트리 (BST : Binary Search Tree) 이진 탐색 트리 (BST : Binary Search Tree) 이진 탐색 트리(BST: Binary Search Tree)는 다음과 같은 속성이 있는 이진 트리 자료 구조이다. 1. 각 노드에 중복되지 않는 키(key)가 있다. 2. 최상위 레벨에 루트 노드가 있고, 각 노드는 최대 두개의 자식 노드를 갖는다. 3. 왼쪽 서브 트리는 부모 노드의 키보다 작은 키를 갖는다. 4. 오른쪽 서브 트리는 부모 노드의 키보다 큰 키를 갖는다. 이진 탐색 트리에서의 검색 1. 루트노드로 부터 시작한다. 2. 검색하려는 값이 현재 노드보다 작으면 왼쪽, 크면 오른쪽으로 가서 찾는다. 3. 노드를 비교하면서 내려가다가 일치하는 값이 나오면 해당 노드를 반환한다. 4. 더이상 비교할 노드가 없으면 검색이 실패했음을 알.. 2023. 10. 2.
선택 (Select) 알고리즘 선택 (Select) 알고리즘 정렬되지 않은 리스트나 배열에서 가장 작은 k번째 수를 찾는 알고리즘이다. 간단한 방법은 최소 숫자들을 오름차순으로 정렬한 후, k번째 숫자를 찾는 것이 있는데, 이러한 알고리즘은 O(nlogn)의 수행 시간이 걸린다. 이보다 효율적인 해결을 위하여 분할 정복 개념을 활용할 수 있다. 일부 과정이 퀵 정렬과 비슷하여 Quick-Select 알고리즘이라고도 한다. "평균"선형 시간 안에 k번째 작은 수를 찾을 수 있다. 부분문제의 크기가 일정하지 않은 크기가 감소하는 형태의 분할 정복 알고리즘이다. 만일 피봇이 입력을 너무 한 쪽으로 치우치게 분할하면, 알고리즘의 수행시간이 길어진다. 두 그룹 중 하나의 크기가 입력 크기의 3/4과 같거나 그보다 크면 bad 분할이고, 그 반.. 2023. 10. 2.
Sort 계수 정렬 (Counting Sort) 알고리즘 [Sort] 계수 정렬 (Counting Sort) 알고리즘 계수 정렬은 데이터의 키에 따라 객체를 수집 정렬 하는 정렬 알고리즘이다.비교 연산을 하지 않는 정렬 알고리즘이다.키의 다양성이 데이터의 수보다 상당히 크지 않은 상황에서 유용하다.O(n)의 시간 복잡도를 가진다.데이터 중 가장 작은 값과 가장 큰 값을 기준으로 하는 공간 크기가 필요하다. (1~10의 경우 10개의 공간이 필요하지만 1과 10000이 들어 있는 데이터에서는 10000의 배열 크기가 필요하다.)특정한 값이 몇번 등장했는지에 따라 정렬을 수행한다.계수를 다 카운팅 한 후에 앞에서 부터 차례대로 배열에 넣는다. 정렬 과정10000개의 공간에 1 ~ 10까지의 정수가 무작위로 들어가 있다고 가정한다.최솟값 최댓값을 알고 있을 때, 각.. 2023. 10. 1.
반응형