-
[Unreal] 액터가 volume 안에 있는지 확인하기Unreal 2024.04.20 10:16
개요 마을의 '영역'을 만들게 되면서 해당 영역에 Enter 하게 되면 플레이어가 해당 영역에 있다는걸 나타낼 예정입니다. 그런데 문제는 플레이어가 마을에서 스폰하게 되는 경우입니다. 이 경우에는 BeginPlay 시점에 Overlap 이벤트가 자동적으로 불리게 되지 않아 문제가 됩니다. 이를 해결하기 위해 BeginPlay 시점에 특정 액터가 안에 있음을 알게 하는 방법 2개를 알아보도록 하겠습니다. bGenerateOverlapEventsDuringLevelStreaming 위 변수 딸깍이면 레벨이 로드되는 중에도 Overlap 이벤트를 발생시킬 수 있게 됩니다. 에디터에서 위 옵션을 체크하거나 생성자에서 true 로 설정해주면 됩니다. void UPrimitiveComponent::BeginComp..
-
[뿌직] 유니티만 하다가 언리얼로 취업하면서 느끼게 되는 점뿌직 2024.04.14 21:48
개요 게임 업계로 들어오기 위해서 상용 엔진을 통해 게임 제작을 했어야 했고 이에 따라 가장 메이저 한 2개의 엔진 중 하나를 고르게 됩니다. 유니티와 언리얼. 제가 대학교에 입학한 시점부터 언리얼도 요금 정책이 달라졌기에 이 둘 중 원하는 엔진을 고르면 되었습니다. 여러 생각과 경험들이 있었지만 이 상황에서 저는 유니티를 먼저 공부했고 추후 취직은 언리얼 프로젝트로 하게 되었습니다. 이러한 과정들 속에서 느끼게 된 점들을, 더 이상 잊기 전에 한번 작성해 보려고 합니다. 이를 통해 추후 엔진을 선택하실 분들에게 도움이 되었으면 합니다. 유니티를 통한 2D 게임 제작 첫 제작은 유니티를 통해서 2D 게임들을 제작하는 것이었습니다. 연합 게임 제작 동아리에서 2년, 게임잼 3회 동안 전부 유니티를 통해 게..
-
[Unreal] Enum을 String 으로 변경하는 템플릿 함수Unreal 2024.01.14 14:24
template static FORCEINLINE FString GetEnumName(const EnumType InValue) { return StaticEnum()->GetNameStringByValue(static_cast(InValue)); } template static FORCEINLINE FString GetEnumDisplayName(const EnumType InValue) { return StaticEnum()->GetDisplayNameTextByValue(static_cast(InValue)).ToString(); } GetNameStringByValue, GetDisplayNameTextByValue 를 통해 enum 의 이름과 DisplayName을 알아내는 템플릿 함수입니다. ..
-
[뿌직] 취업과 함께 2023을 보내게 되다뿌직 2023.12.23 14:32
내외로 많은 성장이 있었던 2023 2023년은 바쁜 해가 되었습니다. 언리얼로 포지션 변화를 노렸고 인턴십에 이어 정규직 전환까지 커리어적으로 변화가 생기게 된 한 해였습니다. 또한 여러 사람들을 만나게 되면서 여러 가지를 배우고 자신을 좀 더 돌아보는 2023년이 되었습니다. 그래서 '이런 적이 있었나?' 싶을 정도로 내외로 많은 성장통을 겪게 된 2023년입니다. UNSEEN과 스마일게이트 인턴, 그리고 정규직까지 [뿌직] 스마일게이트 UNSEEN 1기 수료 후기 합격 후기는 이곳으로 [뿌직] 스마일게이트 UNSEEN 프로그램 합격 후기 개요 첫 합격 후기지만 일단 취업 후기는 아닙니다. 스마일게이트와 에픽게임즈에서 새롭게 진행하는 UNSEEN이라는 언리얼 husk321.tistory.com 이전에..
-
[Algorithm] 백준 7869 두 원 - 삼각함수카테고리 없음 2023.11.30 17:18
7869번: 두 원 첫째 줄에 두 원의 중심과 반지름 x1, y1, r1, x2, y2, r2가 주어진다. 실수는 최대 소수점 둘째자리까지 주어진다. www.acmicpc.net #include #include using namespace std; const double PI = 3.14159265358979f; double GetDistance(double x1, double y1, double x2, double y2) { return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); } int main() { double x1, y1, r1; double x2, y2, r2; cin >> x1 >> y1 >> r1; cin >> x2 >> y2 >> r2..
-
[C++] 특정 클래스만 함수를 호출할 수 있게 하는 방법 - Attorney and Client Idiom, Passkey PatternC++ 짜잘이 2023.10.22 15:19
서론 그냥 갑자기 문득 '입력을 한곳에서 받은 뒤 다른 곳에서는 읽기만 할 수 있게 못할까?'라는 생각이 들었습니다. 유니티에서 `Input.~~`로 표현해 사용하는걸 자체적으로 만들 수 없을까 하는 생각이었습니다. 여기서 드는 생각이 '그러면 입력을 받아주는 곳은 한곳이고 나머지는 전부 읽기 전용이어야 한다'입니다. 그러면 **어떻게 특정 클래스에게만 이런 권한을 줄 수 있냐**하는 의문이죠. 결국 이 의문이 커져서 이번에 소개할 `Attorney and Client idiom`과 `Passkey Pattern`을 보게 되었습니다. Attorney and Client idiom 일단 이 방식은 간단합니다. C++에서 제공하는 `friend` 키워드를 사용하는 것입니다. class Some { priva..
-
[Algorithm] 백준 5052 전화번호 목록 - C++, 트라이알고리즘 문제풀이 2023.10.07 19:44
5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net #include #include #include #include using namespace std; struct Trie { bool bIsTerminal; Trie* Children[10]; Trie() : bIsTerminal(false), Children() {} ~Trie() { delete [] Children; } void Insert(const string& InputNumber) { Trie* CurTrie = this; ..
-
[C++] vector 는 2배씩 늘어나는게 맞을까?C++ 짜잘이 2023.09.21 20:50
개요 벡터는 용량이 부족하면 더 큰 용량을 할당한 뒤 그곳으로 복사를 한다고 다들 알고 있을 겁니다. 여기서 더 큰 용량 을 생각할 때 '벡터는 당연히 2배씩 용량 늘어나겠지' 싶었습니다. 그런데 일을하면서 사수분이 생겼고 이 사수분이 이런 논제를 하나 던져줬습니다. '진짜 2배씩 늘어나는지 찍어보셨나요?'. 이걸 듣고 핫차 싶어서 시간 날 때 바로 테스트를 해보기로 했습니다. 결론은 마냥 2배는 아니다. 그냥 간단하게 2, 4, 8...등으로 늘어날 수 있게 유도해 봤습니다. 코드는 아래 접은 글에 있습니다. 더보기 #include #include using namespace std; int main() { vector vec; cout