일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 약참조
- 정렬
- enumasByue
- 언리얼가비지컬렉터
- 구조적 바인딩
- 델리게이트
- C++최적화
- UELOG
- stl
- 정렬알고리즘
- C++
- map
- UML관련
- 애셋로드
- UE4 커스텀로그
- BFS
- 자료구조
- unorder_map
- 람다
- UE_LOG
- 알고리즘
- 선택정렬
- 비동기호출방법
- 데이터애셋
- 프로그래머스
- 스마트포인터
- 크리티컬섹션
- dataasset
- 강참조
- moreeffectiveC++
- Today
- Total
목록전체 글 (428)
기억을 위한 기록들

블루프린트에서 비동기방식을 다루고 싶다면 UBlueprintAsyncActionBase 클래스를 사용하자. 옛날에 블루프린트 상에서 다른 애셋에 대한 로딩을 하는 과정에서 기다리기 위해 임의로 delay 블루프린트 함수를 쓰는 걸 본 적이 있었다. 다른 좋은 방법은 그 당시에 생각나지 않았고, delay로 임의의 시간을 입력하고 그렇게 사용하는게 좋지 않다는 것만 인지하고 지나간 기억이 있다. 그러다가 최근에 알게된 클래스가 UBlueprintAsyncActionBase 이다. 예를 들어 서버 요청 응답, 외부 SDK 호출이나 다운로드, 내부 로직 처리 대기 등등 을 블루프린트에서 기다리고 싶을때 UBlueprintAsyncActionBase 클래스를 사용하면된다. 예로 살펴보면 해당 코드는 LyraS..
언리얼엔진에서는 문자열 인코딩 타입 변환에 필요한 TCHAR_TO_UTF8 등등의 매크로가 있다. 이 매크로는 사실 DEPRECATED 될 예정이라고 나와있는데, 주석이 되어있는걸 보면 아직 공식적인걸 아니긴 하지만, StringCast함수를 사용하라고 나와있다. 언리얼 5 버전 중에 주석 해제하려고 저렇게 남겨놓지 않았나 싶다... 해당 매크로의 내부를 살펴보면 아래와 같다.#define TCHAR_TO_ANSI(str) /*UE_DEPRECATED_MACRO(5.xx, "TCHAR_TO_ANSI(Ptr) is deprecated, please use StringCast(PtrToTChar) instead.")*/ (ANSICHAR*)StringCast(static_cast(str)).Get()#de..
언리얼엔진에서 모바일 앱들에 대해 앱 이름을 지정해줄 수 있다. 하지만, 추가로 모바일 기기 자체에 설정된 언어에 따라 앱 이름이 현지화 적용되어 필요한 경우도 있다. 그 방법을 살펴보자. Android - strings.xml로 다국어 처리하기1. 경로: "프로젝트/Build/Android/res/"이곳은 Android 리소스가 들어가는 위치로 해당 경로에 추가해줘야한다. 2. 국가별 폴더 생성아래와 같은 형식으로 언어별 폴더를 생성한다한국어: values-ko영어: values-en일본어: values-ja베트남어: values-vi중국어 간체 : zh-rCN중국어 번처 : zh-tTW등등..3. 각 폴더에 strings.xml 생성예시: values-en/strings.xml MyGame 예시:..
std::pair p = {6, 8};auto [w, h] = p; • w는 p.first와 같은 값 (6) • h는 p.second와 같은 값 (8) 즉, pair나 tuple의 요소들을 자동으로 개별 변수로 분해해서 바인딩해주는 문법이다. 하지만 자칫 잘못하면, 더 헷갈릴 요소가 될수도 있을것 같긴하다. int arr[3] = {1, 2, 3};auto [a, b, c] = arr;//a = 1, b = 2, c = 3 struct Point { int x; int y;};int main() { Point pt{5, 7}; auto [x, y] = pt; std::cout
요 근래 몇 개월 동안 바쁘다는 핑계로 블로그에 글을 제대로 쓰지 못했다..이러니저러니해서 어떤 주제로 쓸까에 대해 고민을 하던 와중에, GeekNews에서 흥미로운 주제가 있어서, 가져와 봤다. https://news.hada.io/topic?id=19461 AI 시대에도 블로깅은 여전히 가치가 있습니다 | GeekNews사람들이 모두 ChatGPT, Claude, DeepSeek를 사용하고, AI가 답변을 떠먹여 준다면 블로깅의 의미가 무엇일까? AI 외에 누가 당신이 쓴 글을 읽을까?"블로깅은 그저 읽히는 것이 아니라 배우고 생각하는news.hada.io 주제는 AI 시대를 맞이하면서도, 블로그 자체에 대한 가치 의문증이 나 스스로도 생기고 있었다. 내가 예전에 오랫동안 혼자 공부할 때, 인터넷 서..

최근에 안드로이드 라이브러리를 제공받아 언리얼엔진 프로젝트에 적용해야 하는 작업을 진행했고, 그 과정에서 경험했던것에 대해 나중을 위해 적어보려고 한다. (글에 틀린 부분이 있을 수도 있습니다.) 우선 안드로이드 라이브러리에 대해서 간단하게 알아보면 안드로이드 스튜디오를 통해 작성된 java 기반 aar 파일, 혹은 jar 파일이 있다. jar파일은 Java archive 의 약자로 자바로 생성된 클래스파일과 이미지등의 리소스 파일들의 포함되고, aar파일은 Android archive의 약자로, 안드로이드에 특화된 Jar파일이라고 보면 된다. aar파일은 안드로이드의 layouts, drawables 등 리소스 파일이 포함될 수 있다. (jar파일, aar 파일의 내부를 보려면 확장자를 zip으로 변..
1. Q dir윈도우 용 다중 창 탐색기로 윈도우 탐색기 4개를 동시에 띄워놓고 사용하고 있다. 처음엔 좀 어색했는데 적응하니 편한거 같다. 개인적으로 추천! 2. Beyond Compare퍼포스를 사용해보면서 기본 내장된 diff툴이 마음에 들지 않아 찾아보다가 예전부터 유명한 diff툴로 30일 무료 체험해보고 개인적으로 결제해서 계속해서 쓰고 있다. 다른 diff툴을 많이 사용해보지 않아서 비교하기 어렵지만, 기본 diff툴보단 개인적으로 좋아서 그냥 쓰는 중. 3. Jetbrain Rider언리얼엔진 ide로 visual studio 대신 사용중이다...각각의 장단점이 있고 아직 비교해보기 어렵다. 좀 더 사용해보고 후기를 적어볼까한다 4. Visual Studio Code 활용 ->CSV 뷰어..

(해당 정보는 대부분 웹 서칭을 통해 찾아보고 나중에 제가 혼자 참고하려고 정리해보고 있습니다.) 렌더링 프로세스에 대해 Game thread(게임 스레드)에서 Slate Tick은 프레임당 두 번 위젯 트리를 탐색.1번 틱 :Prepass 트리를 아래->위로 탐색하여 각 위젯의 이상적인 크기( DesiredSize )를 계산.2번 틱: OnPaint 트리를 위->아래로 탐색하여 렌더링에 필요한 Draw Elements 를 계산. Render Thread에서 Slate 렌더링은 두 단계로 나뉜다.1. Widget Render: UI의 RTT를 수행합니다. Retainer Box를 사용하는 경우 Draw Elements는 Retainer Box의 Rtain Target에 렌더링됩니다.2. Slate R..

기존에는 언리얼엔진에서는 플레이어 입력관련 바인딩 이벤트를 프로젝트 설정을 통해서 매핑을 시켜줬었다.하지만, 언리얼 엔진4부터 존재하다가 5부터 본격적으로 어필하고 있는 새로운 프레임워크 Enhanced Input System 직역하면 "향상된 입력시스템"을 도입했다. 그래서 언리얼엔진 5 부터는 기존 프로젝트 설정을 통한 입력 설정을 들어가서 살펴보면, 이제 사용하지 않을거라는 안내메시지가 나오면서, InputActions(IA)와 InputMappingContext(IMC) 를 사용하라고 안내해주고 있다. 향상된 입력 시스템은 우선 플러그인부터 활성화 해줘야한다. 활성화를 해준뒤, 애셋 생성창에서 보면향상된 입력 시스템은 입력 액션(Input Actions) , 입력 매핑 컨텍스트(Input M..
https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr stringstream을 통해 데이터 추출 후, deque를 이용해서 조건에 맞는 제일 큰 값, 제일 작은 값 pop 하여 진행했다. 흠... 통과되긴 했지만, 데이터 넣을 때마다 sort 하는 건 마음에 들지 않는다. #include #include #include #include #include using namespace std; vector solution(vector operations)..
CDO(CDO: Class Default Object)는 C++ 클래스의 기본 인스턴스를 나타냅니다. 클래스의 CDO는 클래스의 기본 속성을 정의하고, 클래스의 인스턴스화 및 초기화 과정에서 사용됩니다. 이는 클래스의 인스턴스를 만들 때 적용되는 초기 속성 값들을 포함합니다. 언리얼 엔진에서는 CDO가 게임 객체의 기본 상태를 정의하는 데 사용됩니다. 예를 들어, 게임에서 사용하는 캐릭터 클래스의 CDO는 이 캐릭터가 소유할 수 있는 초기 속성 값을 정의합니다. 따라서 클래스의 인스턴스를 생성할 때마다 CDO의 초기값이 사용되어 해당 클래스의 객체가 초기화됩니다. UClass 매크로는 UObject 에게 자신의 언리얼에서 기반으로 삼은 유형에 대해 설명해 주는 UClass 로의 레퍼런스를 넘겨줍니다. 각..
https://school.programmers.co.kr/learn/courses/30/lessons/250125 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 특정 좌표에 대한 컬러string이 주변 4방향에 동일한 컬러string을 갖고 있는 갯수에 대한 탐색이다. 내 풀이 : #include #include using namespace std; int dir[4][2] ={{0,-1},{0,1},{-1,0},{1,0}}; int solution(vector board, int h, int w) { int answer = 0; for(int ..