본문 바로가기
728x90

전체 글102

[Unreal] ConstructorHelpers::FClassFinder, FObjectFinder 차이 // 생성자에서만 로딩 FClassFinder FObjectFinder UObject의 생성자 함수에서만 사용이 가능하다, 생성자 함수가 아니라면 언리얼 엔진이 뻗는 경우가 다반사 리소스는 여러 언리얼 오브젝트의 인스턴스들이 공유해서 사용하는 자원이므로, 인스턴스마다 불필요하게 애셋을 로드할 필요가 없기 때문이다 (여러 인스턴스가 같은 리소스를 계속 재할당 요청하는 것을 방지) 일반적으로 위에 적은 이유들로 static 키워드를 붙이는 것이 관행이라 할 수 있다. // 리얼타임(다이나믹) 로딩 StaticLoadClass StaticLoadObject 모든 위치에서 사용이 가능 // 동작은 같으나 사용 위치가 다름 FClassFinder == StaticLoadClass FObjectFinder == S.. [Unreal4]/기능 2022. 2. 5.
[Unreal] unreal 스트링 처리 Unreal 내에는 FName, FText, FString 3개의 스트링 자료형이 존재한다. 서로 간의 암묵적 형변환이 존재하지 않아 명시적으로 변환 함수를 사용해서 변환해야 한다. 아래는 언리얼 공식 도큐먼트에서 정의한 내용들이다. FName 에서 FString TestHUDString = TestHUDName.ToString(); FName 에서 FText TestHUDText = FText::FromName(TestHUDName); FName -> FText 는 가능한 경우도 있지만, FName 의 내용이 FText 의 "자동 현지화" 혜택을 받지 못할 수 있음에 유념해 주시기 바랍니다. FString 에서 FName TestHUDName = FName(*TestHUDString); FString .. [Unreal4]/기능 2022. 1. 22.
[Unreal] cheat manager 사용하여 디버그에 도움 주기 치트 매니저는 하나의 블루프린트 클래스로 디버깅이나 특정 상황을 테스트할 때 사용할 수 있다. 기본적으로 프로젝트가 디버깅이 가능할 때만 사용이되며 Shipping 모드로 패키징하면 해당 기능은 패키징에서 제외된다. 즉, 치트 매니저는 Shipping으로 패키징 된 실행파일에서는 사용할 수 없는 기능이 된다. 일반적인 블루프린트를 만들듯이 만들 수 있다. 해당 치트매니저는 컨트롤러에서 사용이 가능하다. 컨트롤러 블루프린트 - 디테일 - Cheat Manager 를 가면 설정할 수 있다. 치트매니저에는 사용 가능한 다양한 함수들이 있다. 치트 함수들 Change Size F의 값으로 크기를 변경시킨다. Damage Target 바라보고 있는 객체에게 데미지를 가한다 해당 객체에 데미지를 입는 함수가 있을 .. [Unreal4]/기능 2022. 1. 22.
[Unreal] Auto Reimport 기능을 통해 프로젝트 경로의 폴더 모니터링 하기 파일 임포트 경로 설정 및 폴더 모니터링 자신의 프로젝트 폴더에 새로운 파일이 생겼을 때 프로젝트에 임포트를 할 것인지 물어보는 기능을 의미한다. 편집 - 에디터 개인 설정 - 로드&저장 부분이 있다. Monitor content Directories를 체크를 하지 않으면 파일을 폴더에 넣어도 임포트 하지 않는다. Directories to Monitor는 모니터링할 경로를 의미한다 0번은 기본 생성으로 /Game/ 경로를 모니터링 하고 있는데 이는 해당 폴더의 기본 위치로 Content 랑 동일하다. 즉, 해당 폴더에 파일을 추가하면 언리얼이 자동으로 모니터링하여 임포트 할 것인지를 물어보는 것이다. Include/Exclude wildcards 는 특정 파일이나 확장명을 제외하거나 특정 파일 형식에서.. [Unreal4]/기능 2022. 1. 22.
[C++] decltype 이란? decltype은 주어진 이름이나 표현식의 형식을 알려주는 역할을 한다. ( decltype에 대한 정보 https://msdn.microsoft.com/ko-kr/library/dd537655.aspx ) decltype은 대부분 예상한 자료형을 알려주지만 가끔 생각지도 못한 결과를 제공하는 경우가 있다. 그렇기에 decltype의 작동 방식을 공부해보자. decltype은 템플릿이나 auto와 다르게 주어진 이름이나 표현식의 구체적인 자료형을 그대로 말해준다. 다음 예를 보자. 위 예에서 사용된 코드들은 우리가 생각할 수 있는 그대로가 decltype을 통해 표현된다. 대체로 자료형 T의 객체들을 담은 컨테이너(vector, deque 등)에 대한 operator[] 연산은 T&를 반환한다. 그러나 .. [프로그래밍 공부]/C&C++ 2022. 1. 22.
티스토리-게시글을 작성하는데 실패했습니다. 잠시 후 다시 시도해주세요. 에러 티스토리에 글을 쓰다보니 위와 같은 현상이 발생하였다. 심지어 비공개로는 글이 작성되고 공개로는 작성이 되지 않아 도대체 무엇일까 원인을 찾아보았는데 비공개된 글을 공개로 변경하려고 하니 다음과 같은 팝업이 발생했다. 하루 15개까지만 공개글을 쓸 수 있었던 것. 비공개 저장은 가능하니 비공개로 글을 써놓고 다음날 공개설정으로 변경하자. 카테고리 없음 2022. 1. 22.
[Unreal]Failed to open selected source code accessor 'Visual Studio' 에러 발생 시 언리얼 C++ 프로젝트를 생성하고 실행하니 Failed to open selected source code accessor 'Visual Studio' 에러가 발생하였다. 원인은 윈도우 SDK 8.1 이 없어서 발생한 것 https://developer.microsoft.com/ko-kr/windows/downloads/sdk-archive/ Windows SDK 아카이브 - Windows 앱 개발 이 비보안 업데이트에는 품질 향상이 포함됩니다. MRMSupport.dll 로드 실패로 인해 개발자가 Windows 7에서 UWP 앱을 빌드하지 못하는 문제를 해결했습니다. MidlRT 및 MDMerge가 Windows 7에서 실행되지 않는 developer.microsoft.com 위 홈페이지에서 이전 릴리.. [Unreal4]/오류 수정 2022. 1. 22.
[C++] 왜 0이나 NULL이 아닌 nullptr을 사용해야 할까? 0이나 NULL의 경우 형식이 포인터의 형식이 아니다. 0의 경우 포인터의 위치에 있으면 단순히 널포인터로 인식만 할 뿐이다. 0은 단순히 int일 뿐이다. NULL 또한 마찬가지이다. 그렇다면 0과 NULL을 쓰는 것이 왜 문제일까? 위와 같이 오버로딩된 함수들이 있다고 하자. 이 때 사용자가 func(0)을 사용했다. 그렇다면 위 세가지 함수 중 어떤 함수가 실행될 것인가? 당연히 func(int n) 함수를 호출할 것이다. 그렇다면 void func(void* vp)를 호출하고 싶은데 인자로 null을 넣고 싶으면 어떻게 해야하는가 0 과 NULL 둘 다 func(void* vp)를 호출 할 수 없다. 결국 답은 nullptr 뿐이다. nullptr은 정수의 형식이 아니다. 모든 형식의 포인터인데 .. 카테고리 없음 2022. 1. 22.
728x90