본문 바로가기

전체 글

[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의 인스펙터 기능이 필요 없이 코드로만 동작하.. 더보기
Unity: Workflow. 네비게이션 시스템 베이킹시 갭이 발생할 때 기본 설정으로 네비 메쉬를 굽고 캐릭터를 올려보면 캐릭터가 바닥에서 발이 떨어져있는듯한 모습을 보여주기도 합니다. 네비게이션 메쉬를 생성할 때 사용하는 복셀 크기때문에 그런데요, 옵션에서 복셀 크기를 적당히 줄여주면 비교적 정확하게 베이크가 됩니다. 너무 크기를 줄여버리면 시간이 과도하게 오래걸릴 수 있으니 감당할 수 있는 수준에서 조절하면 됩니다. 바닥에 신발이 붙은 것 처럼 수치를 조절할 수 있었습니다. 더보기
언리얼: 튜링 메시 셰이더 블로그 번역 사전 지식 1. 콤퓨트 셰이더 2. 기존 렌더링 파이프라인 여기에 작성된 글은 번역이 아닌 번역자 코멘터리 원문 : Introduction to Turing Mesh Shaders | NVIDIA Developer Blog Introduction to Turing Mesh Shaders | NVIDIA Developer Blog Turing introduces a new programmable geometric shading pipeline, mesh shaders,, enabling threads to cooperatively generate compact meshes on the chip. developer.nvidia.com 튜링 아키텍쳐는 메시 셰이더 사용을 통해 새로운 지오메트리 셰이딩 파이프라.. 더보기
언리얼: 에인션트의 협곡 골렘 구현 방식 간단 살펴보기 언리얼 엔진 5 테크 데모 - 에이션트의 협곡 에인션트의 협곡에서 보스로 등장하는 골렘의 이름은 『에인션트 원』입니다. 거대한 캐릭터임에도 자연스러운 애니메이션과 이펙트로 주인공을 위협합니다. 그런데, 여기에서 궁금한 점이 생깁니다. 공식 문서의 나나이트 섹션을 참조하면, 나나이트 메시는 스켈레탈 메시의 디포메이션을 허용하지 않는다고 기술되어있습니다. 움직이며 디포메이션 되는 스켈레탈 메시는 나나이트를 사용할 수 없다는 말입니다. 그러나, 골렘의 겉 갑주는 디포메이션 될 필요가 없습니다. 카오스 디스트럭션 시스템 등을 통해 부서지는 파티클로 연출하는 방식 등으로 구겨지거나 구부러지는 디포메이션을 회피할 수 있습니다. 각 갑옷을 애니메이션 되는 스켈레탈 메시에 어태치해, 정점의 디포메이션 없이 포지션과 로.. 더보기