본문 바로가기

분류 전체보기

언리얼: Vault Cache 경로 변경하기 Vault Cache는 무엇일까 언리얼엔진5 얼리엑세스가 출시되면서 제공 샘플인 에인션트의 협곡을 다운로드 받으려고 했으나... 요구되는 여유 공간은 무려... 205GB !!! Vault Cache 106GB, 프로젝트 생성시 99GB라고 하네요. 샘플을 다운로드하면 기본 Vault Cache 경로인 C드라이브에 설치되는데요, 제 드라이브의 상태는... C드라이브는 더 이상 대용량 에셋을 감당할 수 없는 경지에 도달했기에 프로젝트만 C드라이브에 설치하고, Vault Cache는 다른 드라이브에 두기를 원했습니다. VaultCache는 에셋을 다운로드하면 프로젝트에 임포트하거나 생성하기 전에 다운로드받아 로컬에 캐시해두는 리소스들입니다. 다운로드 속도나 임포트 속도에는 제약을 받겠지만 꼭 메인드라이브에 .. 더보기
Unity: Workflow. 유니티 에디터 종료 확인 문구 유니티 에디터를 의도치 않게 꺼버릴 때가 있습니다. 다른 브라우저를 끄거나, 클릭 미스로 꺼버리는 경우가 있죠. 프로젝트가 작다면 금방 다시 키는게 큰 문제가 되지 않지만, 로딩 시간이 오래 걸리는 경우 의도치 않은 에디터 종료가 부담스러울 수 있습니다. 간단하게 에디터 콜백을 추가해 다이얼로그 박스를 한 번 더 띄우도록 구현해보겠습니다. using UnityEditor; public class EditorQuitHandler { [InitializeOnLoadMethod] private static void Register() { EditorApplication.wantsToQuit += OnWantsToQuit; } private static bool OnWantsToQuit() { return Ed.. 더보기
Unity: 작업중인 프로젝트를 URP로 전환하기 전 확인할 사항 이 게시글은 2021. 5월 경 작성되었습니다. 다소 상황이 달라졌을 수 있어, URP 디퍼드 렌더링 등 최신 업데이트 된 소식을 꼭 찾아서 확인하세요. 유니버설 렌더 파이프라인이 뭐길래? Universal Render Pipeline은 기존 LWRP에서 이름이 바뀐 템플릿입니다. High-Definition의 반대편에서 Light-Weight라는 타이틀 아래 개발이 시작되었지만 이런저런 과정을 거쳐 최종적으로 Universal 한 플랫폼에서 동작한다는 의미로 굳어졌습니다. Light 함보다는 Universal 함에 포커스를 맞추고 개발하겠다는 포부를 밝힌 것인데요, 일부 사용자는 이 렌더러가 결코 Light-Weight 하지 않았기에 이름을 바꿀 수밖에 없었던 게 아닌가 의문을 제기하기도 합니다. 사실.. 더보기
Unity: ShaderLab 패키지 요구사항 정의 (PackageRequirements) 2021.2 알파버전이 한창 개발되고있습니다. SRP 역시 버전을 바꿔가며 거듭 진화하고 있는데, API 이름이라 지원하는 키워드 등 버전별로 사용가능한 부분이 상이해 섣불리 기존 프로젝트에 적용하기엔 부담스럽습니다. 에셋 개발자들 역시 SRP 버전업에 따라 키워드를 바꿔주거나 추가해주어야하고 유지보수가 쉽지 않습니다. Shader "MyShader" { SubShader { Pass { PackageRequirements { "com.unity.render-pipelines.universal":"[10.0,10.5.3]" } ... } Pass { PackageRequirements { "com.unity.render-pipelines.universal":"[11.0,11.2.4]" "com.my.ot.. 더보기
Unity: Workflow. Text 추가 효과 적용 - Deformer uGUI와 TextMeshPro 모두에서 사용가능한 Text 컴포넌트 애니메이터를 만드려고 uGUI 코드와 TMPro 코드를 읽어보던 중 BaseMeshEffect 컴포넌트를 이용한 효과 주입이 가능함을 발견했습니다. uGUI 패키지에 포함되어있는 Outline, Shadow 컴포넌트인데요. BaseMeshEffect를 이용해 추가적인 효과를 더해주는 기능을 제공합니다. 이를 참고해서 Mesh 버텍스를 랜덤하게 이동시켜 글자가 꿈틀거리는 효과를 만들었습니다. 기능 구현을 확인했고, 다른 이펙트와 겹쳐 사용이 가능한지 확인도 했습니다. 단순히 생성된 메쉬의 버텍스 위치만 옮겨주는 거다보니 크게 문제는 없을거라 생각했습니다. 그림자(Shadow)와 외곽선(Outline)효과도 문제없이 함께 적용됩니다. 프로.. 더보기
Unity: Workflow. ListPool<T> 리스트 풀 유니티 uGUI 코드를 살펴보다가 ListPool을 사용하는 부분을 발견했습니다. 주로 Mesh가 업데이트 되어야 할 때마다 버텍스를 관리해줄 때 리스트가 사용됩니다. 매번 리스트를 만들고 사용하면 그 동작이 얼마나 자주 진행되는지에 따라 메모리 누수로 인한 CPU Spike가 발생할 수 있습니다. 이를 방지하기 위해 uGUI 코드에서 internal로 사용되던 자료구조입니다. 구현은 위와 같이 되어있으며 2021.1 버전부터 public 으로 사용할 수 있게 접근제한이 풀렸습니다. uGUI의 Text 컴포넌트에서 사용되는 VertexHelper 클래스는 이를 리스트풀을 이용해 구현했습니다. 조심해야 할 점은 Release를 제대로 시켜주지 않으면 되려 메모리에 악영향을 줄 수 있다는 것입니다. 명시적으.. 더보기
프로필 보호되어 있는 글입니다. 더보기
문제해결: 2. 파일 이름이 너무 깁니다 삭제 방법 파일을 지우려고 했는데, 안된다고 하네요. 제가 삭제하고 싶은 경로는 C:\Workspace\ML\DQN 이었습니다. 윈도우키 + R을 눌러 실행 대화상자를 열고, CMD를 실행합니다. 그리고 지울 파일이 있는 경로로 이동합니다. 저는 타겟이 C:\Workspace\ML\DQN 이어서 C:\Workspace\ML로 이동했습니다. 지울 대상의 한 단계 위 디렉터리로 이동하면 됩니다. cmd 창에서 입력합니다. > cd C:\Workspace\ML > mkdir abc robocopy abc DQN /s /mir rmdir abc rmdir DQN 이렇게 입력해주면 삭제됩니다. abc는 임의의 이름이며, 통일해서 사용해주기만 하면 됩니다. 다만 기존 경로에 abc라는 이름의 파일이 존재하면 안됩니다. 더보기