유니티의 기능은 C#으로 작성되지만 실제로는 C++ Native Object를 감싸 C#으로 Wrapping하여 동작합니다. 오브젝트를 Destroy 하면 C++ Native Object가 삭제되고 C# UnityEngine Object는 메모리에 그대로 존재하게 됩니다. 이러한 C# UnityEngine Object는 가비지 컬렉션(GC)가 동작...
(Unity) 조이스틱 구현
모바일에서 자주 사용되는 조이스틱을 구현합니다. 1. 준비물 Object Player UI 원형 틀 원형 (원형 틀의 자식 객체로 넣기) 2. 코드 💻 Scene UI 코드 플레이어의 터치를 확인하고 조...
(Unity) Draw Call 최적화
목차 Draw Call SetPass Call Batches 최적화 방법 1. Draw Call 드로우 콜(Draw Call)은 CPU가 GPU에게 그리기 명령을 호출하는 것을 말합니다. 한 프레임에서 오브젝트를 그릴 때 여러 정보들이 CPU->GPU로 이동되며 오브젝트를 다 그리면 화면에 보여...
객체지향 프로그래밍
제가 처음 배운 언어는 C 언어입니다. 처음 배운 프로그래밍 언어이기에 너무 재밌었던 기억이 있는데요ㅎㅎ 당시 절차지향 프로그래밍인 것은 알았지만 딱히 신경쓰지 않고 공부했던 것 같습니다. 그런데 코드가 점점 길어질 수록 가독성은 떨어졌고(실력도 문제지만,,) 나중에 이 코드를 내가 읽을 수 있을까? 싶었어요ㅋㅋ,, 그러던 어느날 2학년이 되던 ...
(Unity) 가비지 컬렉션 (GC)
Unity를 하면서 가비지 컬렉션을 처음 알았다. 계속 봐도 이해하기가 좀 어렵지만.. 왜 필요한지 부터 알아보고 차근차근 알아봐야겠다! 목차 가비지 컬렉션(GC)이란? .NET 가비지 컬렉션 Unity에서의 가비지 컬렉션 가비지 컬렉션 최적화 정리 1. 가비지 컬렉션(GC)이란? 가비지 컬렉션은 프로그래밍에서 메모리 관...
(Unity) 코루틴 이해하기 (Coroutine)
코루틴은 유니티 뿐만 아니라 다른 프로그맹이에서도 등장하는 유용한 요소이기에 꼭 알아야하는 기능입니다. 과거 코루틴을 처음 접할때는 간단하게 무언가 기다릴 때 사용한다고만 생각했는데 자세히 알아보니 중요한 기능였네요,, 그러므로 쉬운 것 같으면서도 헷갈리는 코루틴을 공부 해보도록 하겠습니다. 목차 코루틴이란? 코루틴 실행 방식 I...
(Unity) 기본 용어 정리
생각해보면 게임 개발자가 되기 위해 무턱대고 달리고 있어 사용법은 알지만 구체적인 정의를 모르고 살았던 것 같습니다. 시스템 안에서 돌아가는 원리는 대략 이해되는데 정작 말로 설명하자니 말문이 막혀서 이 글을 통해 정리해보려고 합니다. 기본 단어 인스턴스 : 이미 만들어진 오브젝트를 필요할 때마다 생성한다는 의미 렌...
(PlayFab) Google Play Game 로그인
PlayFab과 GPGS(Google Play Game Serivce) 연결 방법에 대해 알아보겠습니다. 📚 기본 준비물 유니티와 PlayFab이 연결된 상태 빠른 시작: Unity에서 C#용 PlayFab 클라이언트 라이브러리 유니티와 Google Play Game Service가 연결...
(GitHub) 리포지토리의 하위 폴더 복사하기 (커밋 포함)
Unity 포트폴리오를 github에 올릴 때 같이 올리기 어려운 파일들이 있습니다. 저 같은 경우에는 유료 에셋 사용으로 인해서 스크립트만 올렸는데요. 커밋한 내용이 당연히 따라오지 못할줄 알았는데 생각보다 간단한 방법이 있었네요..ㅋㅋㅜㅜ 그렇다면! 리포지토리의 하위 디렉토리를 커밋한 내용과 함께 따로 저장하는 방법을 알아보겠습니다. 리포지...
(Unity) Asset 메모리 최적화
2월 알쓸유잡 : 메모리 최적화를 위한 에셋 관리 강의를 정리한 글입니다. 컴퓨터와 모바일의 가상 메모리 시스템 컴퓨터는 게임을 하다보면 4기가의 메모리를 가져도 하드디스크에서 메모리를 빌려주기 때문에 8기가의 게임을 진행할 수가 있습니다. (스왑페이지/페이지파일) 하지만 모바일의 경우 CPU GPU에 대한 기능이 나눠지지 않고 하드웨어 메...