본문 바로가기

전체 글

언리얼: UE5 Montage Section은 별도 창으로 분리 UE5에는 하단의 메인 패널에 있던 몽타주 섹션이 우측 하단 패널 별도 윈도우로 분리되어 있다. 더보기
언리얼: Play시 카메라가 있는데도 임시 CameraActor가 생성될 때 Pawn에서 PossessedBy 함수를 override 해 놓고 Super를 호출해주지 않아 빙의 단계 초기화가 완료되지 않았다. 또는, PlayerController에서 OnPossess 함수를 override 해 놓고 Super를 호출해주지 않았을 수도 있다. 그 결과 Pawn에 붙여둔 카메라가 메인 뷰타겟 카메라로 지정되지 못했고, 레벨에 사용할 수 있는 카메라 액터가 없다고 판단한 PlayerCameraManager가 새로운 카메라 액터 인스턴스를 하나 생성한다. APlayerCameraManager::InitTempCameraActor API를 보면 된다. Pawn이나 PlayerController에서 override 한 메서드에서 제대로 Super를 Call 해주면 해결된다. 더보기
언리얼: AABPlayerController::Possess overrides final function 이득우 님의 책을 따라해보던 중 Possess 가상함수 오버라이드 과정에서 컴파일에러를 만났다. 정의를 따라가보니 4.22에서 Deprecated 되었고 OnPossess를 사용하라고 한다. 더보기
[C++] 기본으로 추가되는 IAT, 모듈을 제외하기 Visual Studio 2019에서 C++ Dynamic-Link Library (DLL) 템플릿으로 프로젝트 생성 Clean Module으로 명명하고, 그대로 빌드 시 빌드에 성공한다. pch.h, frameworks.h를 따라가 보면 windows.h 헤더를 인클루드한다. IDA로 열어보면 내가 사용하지도 않은 함수들과 모듈들이 IAT에 나타난다. 프로젝트 설정을 수정하여 1. windows.h 헤더 인클루드 제외 2. Security Check 해제 3. 사용하지 않는 라이브러리를 포함시키지 않음 4. ep 함수를 지정 조치를 해 준다. 1. 우선 프로젝트의 dllmain.cpp를 제외하고 헤더와 소스 모두 삭제한다. 소스에서도 pch.h를 인클루드하지 않고, 프리미티브 타입을 이용한 함수로 변경.. 더보기
[C#] Enum의 모든 값 가져오기 https://docs.microsoft.com/ko-kr/dotnet/api/system.enum.getvalues Enum.GetValues 메서드 (System) 지정된 열거형에서 상수 값의 배열을 검색합니다.Retrieves an array of the values of the constants in a specified enumeration. docs.microsoft.com 사용자가 정의한 Enum을 모두 가져와 루프를 돌고 싶을 때가 있다. Enum.GetValules(Type type) 메서드를 이용해 배열로 받아 올 수 있다. foreach를 사용하는 경우 해당 타입으로 public enum EGameState { None, Wait, PreBattle, InBattle, PostBatt.. 더보기
ASP.NET Core: 1. CORS 문제 해결 임시방편으로 로컬에서라도 동작하게 구현했습니다. public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void Con.. 더보기
Unity: UniRx로 NavMeshAgent의 도착 콜백 생성하기 neuecc/UniRx: Reactive Extensions for Unity (github.com) neuecc/UniRx Reactive Extensions for Unity. Contribute to neuecc/UniRx development by creating an account on GitHub. github.com 내장된 NavMeshAgent에는 따로 도착 콜백이 존재하지 않아 UniRx를 이용해서 임의로 콜백을 호출하도록 구현했습니다. 멈춘상태인지를 판단하는 IsStopped 함수를 만들고, Start에서 Update루프에서 확인하도록 등록해주었습니다. public class PlayerCharacter: Character { public NavMeshAgent agent = defau.. 더보기
Unity: Workflow. 자주 사용되는 싱글톤 패턴 Singleton 한 번의 객체 생성으로 전역성을 띄고 어디서든 접근이 가능하기 때문에 편리하게 사용되나 필수적으로 커플링이 생긴다는 점에서, 남용하지 않는 선을 지켜 적당히 사용하게 됩니다. 게임 아키텍쳐가 매우 복잡하고 크지 않는 이상 10개가 넘는 싱글톤 객체가 생기는 일은 잘 없고, 필요한 매니저 클래스들 정도만 활용하는 편입니다. 유니티에서는 MonoBehaviour를 상속받는 컴포넌트를 토대로 구조가 쌓이기 때문에, MonoBehaviour를 위한 싱글턴 템플릿 클래스를 만들어두면 편리합니다. 그래서 제가 자주 사용하는 싱글톤 클래스들 코드를 기록해두려고 합니다. 1. 일반 클래스 싱글톤 템플릿 데이터 DB나 리소스를 관리해주는 클래스, 또는 MonoBehaviour의 인스펙터 기능이 필요 없이 코드로만 동작하.. 더보기