쾌락없는 책임 (공부)
-
[Unreal] 언리얼의 GC에 대해서 알아보자. 아주 간략히쾌락없는 책임 (공부)/Unreal 2022. 11. 7. 18:07
개요 언리얼을 처음 접했을 때 스크립팅 언어로 C++을 사용하니 메모리 관리에 있어서 스마트 포인터를 적극 활용하는 등 여러 조치를 취해야 할 거라고 생각했습니다. 뭐 프로그래머가 직접 다 관리하는 줄 알았죠. 그런데 알고 보면 언리얼은 리플렉션 시스템을 통해서 GC를 관리한다는 사실에 생각보다 메모리 관리를 안 하게 됩니다. 다만 '정말 이대로 괜찮을까?' 하는 생각에 여러 자료들을 찾아본 바, 관련 내용들을 정리하기 위해서 이 글을 작성해 봅니다. 앞으로 제작하는 데 있어서 이런 부분에서의 최적화를 생각해서 나쁠 건 없으니깐요. 그냥 쓰던 UPROPERTY, 리플렉션 시스템으로 사용되었다 리플렉션(Reflection)은 프로그램이 실행시간에 자기 자신을 조사하는 기능입니다. - Unreal Engin..
-
[Unreal] 언리얼 Anim Montage가 재생되지 않을 때 - Unreal Anim Montage not playing쾌락없는 책임 (공부)/Unreal 2022. 11. 5. 20:21
개요 이 망할 엔진에 대한 지식 부족으로 공격 모션을 Montage_Play로 변경하고 나서 Montage의 애니메이션이 나오지 않는 일이 있었습니다. 혹시나 비슷한 오류를 가질 분들을 위해서 체크리스트 몇가지를 준비해 봤습니다. 확인해볼 것들 1. UAnimMontage 가 잘 초기화 되어 있는지 에디터에서 확인 이 경우로 고생하는 사람들이 많이 있다고 합니다. UPROPERTY에서 VisibleAnywhere 옵션을 넣어버려 에디터에서 넣지 못했다는 등 여러 이유가 있으니 이를 한번 확인해 봅시다. 2. Mesh 에서 Pause Anim 확인 위 사진과 같은 형태로 있어야 합니다. 체크되어 있으면 애니메이션이 전혀 재생되지 않게 됩니다. 3. AnimGraph 에서 Slot 넣어주기 (본인 해당 문제..
-
[Unreal] GarbageCollection.cpp 에러, Invalid object in GC 에러쾌락없는 책임 (공부)/Unreal 2022. 11. 5. 17:15
Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\GarbageCollection.cpp] [Line: 1112] Invalid object in GC: 0x000008555dffe8a0, ReferencingObject: ZombieBase /Script/ProjectFA.Default__ZombieBase, ReferencingObjectClass: Class /Script/ProjectFA.ZombieBase, Property Name: MovingState, Offset: 1960, TokenIndex: 77 개요 저 망할 오류가 계속해서 떠서 IDE에서 빌드를 해도 파일을 열 수 없는 ..
-
[Unreal] 언리얼 TObjectPtr에서 UFUNCTION 사용 불가쾌락없는 책임 (공부)/Unreal 2022. 11. 4. 20:59
개요 언리얼은 5로 버전업이 되었고 이전의 원시 포인터에서 TObjectPtr을 사용하라는 권고가 생겼습니다. 그런데 참 아니꼬운 요소이지만 사용하다 보면 이런 이야기가 나오게 됩니다. UFunctions cannot take a TObjectPtr as a parameter 아니 쓰라고 했지만 아직 UFunction은 인자로 TObjectPtr을 받을 수 없다고 나옵니다. 이와 관련해서 함수 반환값도 이렇게 되면 안되는것 같은데 이건 기억이 잘 안나고 확실한건 UFUNCTION 매크로가 달린 함수들은 TObjectPtr 을 인자로 받을 수 없다는 뜻입니다. 왜 이런 문제가 있을까 UFunctions cannot take a TObjectPtr as a parameter. Why? I have a met..
-
[Unity] NewtonSoft 사용중 빌드시 json 파일이 보이지 않는다면쾌락없는 책임 (공부)/Unity 2022. 10. 25. 17:01
개요 친구와 유니티 게임 데모를 빌드하는데 각종 말풍선에 들어가는 이름들을 Json으로 저장해두고 사용하고 있었습니다. 그런데! 빌드를 하니 이 Json 파일들이 다 보이지 않고 빌드 파일에 수작업으로 넣어줘도 경로를 제대로 읽지 못하는 문제가 있었습니다. 해결법 File -> Build Settings -> player -> 상단에 Api Compatibility Level 검색 -> .NET 4.x 로 선택 후 빌드하면 해결됩니다. 참고 사이트 Unity에서 .NET 4.x 사용 Unity에서 .NET 4.x를 사용하는 방법을 이해합니다. .NET 4.x 스크립팅 런타임을 사용하도록 설정합니다. .NET 호환성을 활용합니다. 새 구문 및 언어 기능을 검토합니다. learn.microsoft.com
-
[Algorithm] 백준 14500 테트로미노 - C++, DFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 10. 21. 20:31
14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net #include #include using namespace std; const int MAX = 501; int n, m; int map[MAX][MAX]; bool visit[MAX][MAX]; int moveX[] = { 0, 0, 1, -1 }; int moveY[] = { 1, -1, 0, 0 }; int answer = -1; bool IsOut(int y, int x){ return (y = n || x >= m) ?..
-
[Algorithm] 프로그래머스 게임 맵 최단거리 - C++, BFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 10. 13. 17:29
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include using namespace std; const int moveX[] = { 0, 0, 1, -1 }; const int moveY[] = { 1, -1, 0, 0 }; bool visit[101][101]; int solution(vector maps) { int n = maps.size(); int m = maps[0].size(); queue q; q.push({{0, 0}, 1}); while (!q.empty()){ int curY = q.front().first.fi..
-
[Algorithm] 프로그래머스 옹알이 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 10. 13. 15:06
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include using namespace std; std::string ReplaceAll(std::string &str, const std::string& from, const std::string& to){ size_t start_pos = 0; while((start_pos = str.find(from, start_pos)) != std::string::npos) { str.replace(start_pos, from.length(), to); start_pos += to.length(..