본문 바로가기

전체 글

(4)
Addressables in Unity 유니티에는 에셋을 다루는 다양한 방법이 있다. 몇 가지 예를 들자면, 변수를 Inspector에 노출시키고 Hierarchy에서 직접 에셋을 드래그&드롭으로 연결시켜놓는 방법. Resources 폴더를 에셋을 넣고 Resources.Load()를 사용해 불러오는 방법. 에셋들을 묶음(Bundle) 단위로 관리, 배포하는 방법. 어드레서블은 다른 방식들 몇가지 단점들을 보완하고자 만들어진 방식이다. 어드레서블이란? 어드레서블은 유니티에서 사용되는 에셋 관리 시스템이다. 원하는 타이밍에 에셋을 로드할 수 있기 때문에 메모리 관리에 도움이 된다. 모든 에셋을 Resources.Load로 불러온다면 미리 메모리에 올려두어야 하고, 이는 로딩 타임에도 영향을 끼쳐 앱의 경쟁력이 떨어질 수 있으니, 프로젝트의 규모..
Anti Cheat Toolkit Unity Asset Store에서 구매 가능한 유료 치트 방지 플러그인이다. 크게 ObscuredTypes, ObscuredPrefs, ObscuredFile, ObscuredFilePrefs 4가지로 나눠져있다. 하나 씩 예제 코드와 함께 살펴보자. ObscuredTypes Cheat Engine, ArtMoney, GameCIH 등과 같은 모든 메모리 검색기에서 변수를 숨김. 모든 기본 타입 및 소수의 유니티 타입들을 커버한다. 모든 플랫폼에서 작동. (PC, Mac, iOS, Android, WP8, WinStore) ObscuredCheatingDectector를 통한 임의 변조 감지 기능이 있다. 보호 기능이 없는 간단한 코드를 상상해 보자. (lives 변수 참고) using UnityEng..
JSON in Unity JSON이란? 서버와 클라이언트 사이에 데이터를 주고받을 때 사용하는 개방형 표준 포맷. 텍스트를 사용하기 때문에 사람이 이해하기 쉽다는 장점을 가지고 있다. JSON은 유니티에서도 다양하게 사용 되는데, 게임에 필요한 데이터를 주고받거나, 게임 진행 상황 또는 설정을 저장할 때 등 광범위하게 사용된다. JSON에서 {}중괄호는 객체를 의미하고 []대괄호는 배열을 나타낸다. XML과 사용처가 비슷하지만 XML은 JSON에 비해 가독성이 떨어지고 데이터를 넣거나 파싱 하는 과정이 까다롭다. JSON은 주석을 제공하지 않는다. 때문에 가독성을 위해 Key의 네이밍에 신경 쓸 필요가 있다. 작은 문법 오류에도 문제가 생길 수 있어서 문법에 오입력이 없도록 신경 쓰자. (JSON 검사기로 테스트) JSON 코드..
PlayerPrefs 가장 간단한 저장 시스템. PlayerPrefs는 별도의 암호화 없이 로컬 레지스트리에 저장된다. 유저의 암호와 같이 중요한 데이터에는 사용하지 말 것. (중요한 데이터를 서버에 저장하자) 환경설정(음량 조절, 기타 옵션) 같은 것들을 저장하기 용이하다. 정수형, 실수형, 문자열 형식만 지원한다. 이보다 큰 데이터의 경우 이 3가지 데이터로 나눠서 저장해야 하는 불편함이 있다. 딕셔너리나 헤쉬맵과 같이 key와 value의 형태로 데이터를 저장한다. key의 값은 string이며 value를 찾기 위한 식별자로 사용된다. 중복된 key와 다른 value를 입력했다면 덮어쓰기로 인해 가장 마지막 value가 저장된다. PlayerPrefs 함수 입력 출력 PlayerPrefs.SetInt PlayerPre..