전체 글 115

[UE4] UIOnly InputMode에서 Key Input 허용하는 방법

언리얼에서는 인풋모드를 클래스로 만들어 관리하고 있는데 자주 쓰이는 인풋모드는 크게 3가지가 있다. 1. UI에만 인풋 전달. 2. 게임에만 인풋 전달. 3. 둘다에 인풋 전달. 서론 인벤토리를 만드는 중에 괜히 욕심이 생겨 특정 키를 누르면 현재 화면에 떠있는 팝업 ui 가 하나씩 지워지는 기능을 만들었는데 1번 모드를 사용하니 키 인풋이 먹히지 않았다. 열심히 배열이랑 함수들 만들어가며 추가한 기능인지라 이대로 버리긴 아까워서 구글링을 통해 해결하고자 한다. 참고로 3번을 쓰면 되지 않냐 싶은데 그렇게 했다가 인벤토리 클릭하는데 플레이어가 같이 공격해버리는 버그가 발생했다. 플레이어가 UI 밖 게임과 상호 작용하게 하고 싶지 않다면, 또는 키보드를 사용하여 UI와 상호작용 하고 싶다면 주목하자. 해결..

UE4 2023.03.31
[UE4] MSB 3073 오류 해결법

위의 오류는 대체로 다른 에러와 함께 발생한다. 하지만 이번에 처음으로 혼자 에러를 발생시켜 새벽 3시까지 구글링을 했다. 코딩을 하면서 어떤 오류가 발생했을 때 내잘못이 아니라 컴퓨터가 이상해 엔진이 이상해 생각하기 마련인데, 그런 생각은 진작 접는것이 좋다. 나보다 천만배는 더 똑똑한 사람들이 만든게 오류가 쉽게 날리 없다. 반드시 마지막으로 잘 실행했던 빌드 이후로 내가 코드 혹은 엔진에 무슨 똥을 싸질러놨는지 기억을 되돌려보자. 해결법 언리얼에서 저 오류만 단독으로 발생했다면 높은 확률로 UPROPERTY 와 같은 언리얼에서 만든 것들과 관련된 오류이다. 그래서 컴파일러 오류로 뜨지 않고 저 오류만 단독 발생한 것이다. 그렇다면 컴파일러에서도 알려주지 않는 오류를 광활한 코드들 속에서 어떻게 찾아..

UE4 2023.03.29
[C++] const 위치에 따른 차이점

const는 상수라는 뜻으로 뒤에나오는 값의 수정, 변경이 불가함을 나타낸다. const는 변수와 함수에서 주로 사용되는데 그 위치에 따라 의미가 헷갈리는 경우가 많다. 참고로 const화 되어있는 변수를 레퍼런스변수나 포인터변수로 접근하려면 참조자도 const화 해주어야 한다. 1. 변수 const int num1 = 0; //num1의 int 형식의 값을 변경할 수 없습니다. int const num2 = 0; //num2의 값을 변경할 수 없습니다. num1 = 1; //ERROR!!! num2 = 1; //ERROR!!! 변수는 const가 어디에 붙든 의미가 크게 달라지지 않고 변수의 값을 변경할 수 없다는 결과도 똑같다. 하지만 포인터나 레퍼런스에서는 그 결과가 달라진다. 2. 포인터 int ..

C++ 2023.03.26
[UE4] 아키타입(Archetype)

언리얼 Document를 보다보면 아키타입이라는 말이 자주 나오는데 구글링을 해도 많은 자료가 나오진 않아서 오늘은 아키타입이란 무엇인지 알아보고자 한다. 일단 사전에 Archetype의 단어 뜻에 대해 검색해보았다. 우리나라말로는 "전형"이라고 떠서 의미가 확 와닿진 않았는데 영어 해석을 보면 "A perfect example of something"이라고 쓰여져있다. 무언가의 틀? 원형?과 같은 의미로 쓰이는 것 같다. 언리얼에서 Archetype에 대해 정의한 문서는 존재하지 않았지만, 이 아키타입이라는 말이 제일 많이 나오는 부분인 UPROPERTY의 속성 지정자에 대한 Documents를 통해 단서를 얻을 수 있었다. - EditAnywhere : 에디터 내의 속성 창, 아키타입 및 인스턴스를 ..

UE4 2023.03.02
[UE4] 인터페이스 (Interface)

What is "Interface"? 인터페이스(interface)란 특정 기능을 구현할 것을 약속한 추상 형식을 말합니다. Java나 C#등 다른 객체지향 언어에서는 인터페이스 형식을 제공하지만 C++언어에서는 제공하지 않습니다. 하지만 순수 가상 메서드를 이용하여 정의할 수 있습니다. 인터페이스는 멤버필드나 구체적으로 구현한 메서드를 갖지 않고 특정 기능을 약속한 메서드만 갖습니다. 그리고 모든 멤버는 사용하는 개발자와의 약속으로 public 접근 지정합니다. C++에서는 구조체는 디폴트 가시성이 public이어서 구조체를 이용하여 인터페이스를 정의하는 이들도 많습니다. 인터페이스 명명규칙 개발자들 사이에 인터페이스 이름은 I로 시작하고 뒤에 약속하는 기능을 붙입니다. 물론 여러 개의 기능을 약속하는..

UE4 2023.02.25