본문 바로가기

분류 전체보기

(22)
트리플라 하이브리드 팀에서 성장하며 얻은 교훈: 프로그래머 이야기 입사하기 전에는 프로그래머가 정말 코드만 작성하는 역할이라고 생각했습니다. 기획자로부터 기획서를 받고, 아트팀에게 리소스를 받은 후, 기획서를 보고 순차적으로 구현을 진행하는 방식으로 알고 있었습니다. 프로그래머는 거의 마지막에 합류해 마무리를 책임지는 역할이라고 생각했죠. 그러나 제가 입사한 트리플라는 특히 빠르게 움직이는 팀이었고,그 안에서도 하이브리드 팀은 적은 인원으로 더 신속하게 움직여야 했습니다.팀 구성은 아트, 기획, 프로그래머 각 한 명씩으로 이루어졌으며,트리플라가 전문으로 하는 타이쿤 장르가 아닌 하이브리드 장르에 처음으로 도전하는 팀이었습니다. 그렇다면 어떻게 5주에 한 번씩 다른 장르의 프로젝트를 빠르게 출시할 수 있을까요?    1.첫 번째로, 레퍼런스 게임에 대한 이해도가 매우 높..
Dotween Custom 해보기 ArgumentException: Getting control 3's position in a group with only 3 controls when doing repaint Aborting UnityEngine.GUILayoutGroup.GetNext () (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/LayoutGroup.cs:129) UnityEngine.GUILayoutUtility.DoGetRect (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at /Users/bokken/buildslave/unity/bui..
[Unity] Spine Component가 에디터 밖에 들어갔다오면 기본값으로 수정되는 현상 해당 사진처럼 알텝 누르면 스킨이 첫번째걸로 다 초기화되는 현상이 있는데 (핸드폰에서는 발생 X) 이와 같은 문제를 해결할려면 스파인 컴포넌트에 initialSkinName 값이 있으면 다시 돌아올때 해당 값으로 초기화 합니다 문제가 발생하시는 컴포넌트에 해당 값을 기본값으로 고치면 문제 해결 됩니다 if (!string.IsNullOrEmpty(initialSkinName)) skeleton.SetSkin(initialSkinName);
UniTask 란? UniTask란? Unity에서 UniTask는 비동기 작업을 처리하기 위한 도구로, Unity의 코루틴 기능을 대체하며 async/await 패턴을 지원합니다. 일반적인 C#의 Task와 비교하여, UniTask는 Unity에서 더 효율적으로 동작하도록 설계되었으며, 주로 WebGL 빌드와 같은 플랫폼에서 기본 Task의 제한을 극복하기 위해 사용됩니다. UniTask를 사용하면 async/await 패턴을 활용하여 간결하고 명확한 비동기 코드를 작성할 수 있습니다. unitask는 아래 깃허브에서 다운받을 수 있습니다! https://github.com/Cysharp/UniTask GitHub - Cysharp/UniTask: Provides an efficient allocation free asy..
[Unity] FlatBuffer 최신화 하기 유니티에서 플랫버퍼를 사용하다가 이번에 새로운 컴파일 기능이 추가됐다해서 최신화 하게 됐다. 플랫버퍼를 업데이트 해보자 맥 기준이다. https://github.com/google/flatbuffers/releases Releases · google/flatbuffers FlatBuffers: Memory Efficient Serialization Library - google/flatbuffers github.com 해당 홈페이지 들어가서 플랫버퍼 최신 버전을 다운로드 여기서 Flatbuffer dll을 변경해줘야하는데 dll을 추출해줘야 한다. 추출해주는 법은 다음과 같다 (c#기준) 소스코드 다운로드 후 /net/Flatbuffers 폴더로 이동 dotnet build -f netstandard2...
메모리 단편화란? 단편화는 메모리가 작은 조각으로 나뉘어 사용할 수 없어 비효율적으로 변한 상태를 말한다. 메모리 단편화는 2가지의 종류가 있다 외부 단편화: 할당 된 메모리 블록 사이에 사용되지 않는 메모리의 작은 간격이 있어 새 프로세스에 연속된 큰 메모리 블록을 할당하기 어려울 때 발생합니다. 외부 단편화는 압축 및 페이징과 같은 메모리 할당 기술을 사용하여 줄일 수 있습니다. 압축은 할당된 메모리 블록을 이동하여 인접한 메모리 위치를 차지하고 그 사이에 간격을 두지 않는 것 입니다. 할당된 메모리 블록을 모두 이동해야 하므로 비용이 많이 드는 작업일 수 있지만 외부 조각화를 줄일 수 있습니다. 앞서 언긋했듯이 페이징은 메모리를 고정된 크기의 페이지로 분할하여 외부 조각화를 줄이는 데 도움이 될 수 있습니다. 내부 ..
FireBase Sdk 10.2 업데이트때 발생하는 문제 파이어 베이스 sdk를 업데이트 하는데 google sign이 5 에서 6으로 업데이트 되면서 문제가 발생하였다. android 같은 경우에는 googlecloud webclientid를 가져와야하고 ios 같은 경우에는 firebase googleserviceinfo.plist 에 있는 webclient id를 가져와야 합니다. sdk 버전을 업그레이드 할때는 도큐멘트나 버전 업데이트 했을때에 문제점을 레딧이나 다른곳에 찾아본 후에 업데이트 하는게 정말 안전하다라는 생각을 드는 하루였다.
오버로딩과 오버라이딩의 차이점 객체 지향에서 오버로딩과 오버라이딩은 이름은 비슷하지만 전혀 다른 성능을 지닌다. 오버로딩이란? 오버로딩은 같은 함수의 이름은 동일하지만 다른 메서드를 만들 수 있는 기능입니다. 오버라이딩이란? 오버라이딩은 객체지향에서 클래스의 상속을 받아 다른 메서드로써 기능을 구현하는 자식 클래스의 기능입니다. 상위 클래스에 상속받음으로써 상위 클래스의 메소드 동작을 재정의 하여 사용 할 수 있습니다. C#에서는 override를 통하여 부모의 함수를 재정의 해서 사용합니다.