본문 바로가기

전체 글

Unity: 리그 오브 레전드 스타일 체력바 만들기 오토 배틀러 장르 개인작 개발중에, 특성상 다양한 캐릭터가 한 화면에 등장하고 최대 체력과 현재 체력을 쉽고 빠르게 식별하기 위해 체력바를 가시성 좋게 고쳐야 할 필요성을 느꼈습니다. 기존에 사용하던 캐릭터 체력바는 간단히 비율만 표기했었습니다. 캐릭터의 체력은 500에서 5000을 넘나드는데, 숫자로 표기하거나 추가적인 창을 띄워 보는것은 덕지덕지 불편할 수 있죠. 그렇다면 기존 게임들은 어떻게 해결하고 있을까요? 리그 오브 레전드는 한 칸당 100을 의미합니다. 전략적 팀 전투는 한 칸당 300을 의미하고요. 스타크래프트는 칸으로 나누었지만, 칸당 수치가 고정되어있지는 않습니다. 수치당 칸과 색으로 표기해서 가시성을 높였습니다. 제가 작업하고자 하는 부분은 셰이더로 체력 셀을 나눠주는 부분입니다. 이.. 더보기
Unity: 특정 기기에서 텍스처가 특정 축으로 반전되어 보일 때 다양한 기기들은 다양한 그래픽 아키텍쳐를 기반으로 구동됩니다. DX, OpenGL, Vulkan, Metal 등 굵직한 것만 해도 4개입니다. 일부 아키텍처끼리는 좌표계와 텍스처 UV에서 (0,0), (1,1)이 위치한 곳이 비슷하게 공유되기도 하지만, 그렇지 않은 아키텍처도 존재합니다. 보통은 빌드세팅에서 Auto API로 대응시 어느정도 해결되지만, 셰이더를 직접 구성한 경우에는 대응을 위해서 셰이더 코드에서 #define 전처리기를 이용해 뒤집어주는 식으로 작업할 수 있습니다. #if UNITY_UV_STARTS_AT_TOP float scale = -1.0; #else float scale = 1.0; #endif o.uvgrab.xy = (float2(o.vertex.x, o.vertex.y*s.. 더보기
Unity: 2022.1 IL2CPP 제네릭 공유 개선점이 가지는 의미 Feature preview: IL2CPP Full Generic Sharing in Unity 2022.1 beta | Unity Blog Feature preview: IL2CPP Full Generic Sharing in Unity 2022.1 beta | Unity Blog This code demonstrates the expressiveness of generic virtual methods. In other words, we can send data of any type (the “message”) from any class that implements the IManager interface to any class that implements the IReceiver interface. W.. 더보기
Helix Perforce 내부망 구축시 포트 뚫기 퍼포스 로컬 리모트 서버가 1666 포트를 자동으로 뚫어주지 않으므로, 윈도우 방화벽 설정에서 1666 포트를 인바운드, 아웃바운드 규칙에 추가해주어야한다... 더보기
Unity: URP 스냅드래곤 빛 번짐, 스페큘러가 하얗게 타는 현상 보호되어 있는 글입니다. 더보기
EOS: 인증 인터페이스에서 AuthScopeConsentRequired를 리턴할 때 1.14.1 버전에서 발생했습니다. 동일한 코드로 1.14.0 에서 문제없이 작동했습니다. EOS_EAuthScopeFlags | Epic Online Services Developer (epicgames.com) EOS_EAuthScopeFlags EOS API reference page for EOS_EAuthScopeFlags dev.epicgames.com 인증 스코프에 관련한 에러코드이나, 이 인증스코프를 포함하여 리퀘스트를 던져도 버전별로 상이한 결과를 리턴하는 버그입니다. 해결 : 1.14.0으로 다운그레이드 더보기
EOS: DevTool Authenticate 파라미터 에픽온라인서비스 개발단계에서 개발자용 DevTool을 사용하게 됩니다. Epic.OnlineServices.Auth.Credentials LoginCredentialType.Developer LoginCredentialType.Developer로 세팅하고, SDK Tools에서 Dev Tool을 열어서 세팅합니다. 데브 툴에서 에픽 계정으로 로그인하고 포트, 이름을 지정한 다음, 코드에서 Auth.Credentials에서는 ID에 주소, Token에 이름을 넣어주면 됩니다. var loginOptions = new Epic.OnlineServices.Auth.LoginOptions() { Credentials = new Epic.OnlineServices.Auth.Credentials() { Type =.. 더보기
Unity: 게임 클라이언트 프로그래머 기술 면접 키워드 리스트 C# 의 이해 언어 스펙 구조체와 클래스 (필드 크기의 합이 16 byte가 넘는 구조체가 Heap 할당이 발생한다는 정보는 잘못되었음에 주의하세요) 인터페이스와 추상, 가상함수 상속과 다형성 배열과 리스트 namespace partial 객체지향(추상화, 캡슐화, 상속성, 다형성) 지역변수와 전역변수 delegate와 event 차이 유니티와 C#의 관계 메모리 힙 할당 되는 케이스와 아닌 케이스 오브젝트 타입에 밸류 타입을 대입하면 생기는 일 박싱과 언박싱 가비지에 대하여 세대별 가비지 컬렉션 LOH, SOH (라지 오브젝트 힙, 스몰 오브젝트 힙) 최신 기능 패턴 매칭 Nullable 유니티에 대한 이해 기능 코루틴과 Invoke 게임루프와 델타 타임에 대한 이해 CLR과 유니티 Mono Mono와.. 더보기