목록도드넷 (4517)
도드넷
ArgumentException: JSON parse error: Invalid escape character in string. Invalid escape character in string. 오류가 나는 이유? 해결법? JSON 파일을 객체로 복구할때 다음과 같은 오류가 발생했다. ArgumentException: JSON parse error: Invalid escape character in string. JSON 데이터 파일 -> 객체로 만들던중 데이터에 Invalid escape character 가 나타나서 작업을 수행하지 못했다는 의미이다. Invalid escape character란 무엇일까? 데이터 처리에 있어서 문자 자체로 해독하지 않고 다양한 문자와 조합되어 특수한 역할을 하는 특..
게임 디자인에 있어서 레벨 디자인이라는 것에 대한 개인적인 생각 & 고찰. 1. 레벨 디자인이란? - 플레이어가 경험할 수 있는 공간을 설계하는 것. 2. 레벨 디자인의 요소. [ 스토리, 환경, 목표 ] #1 스토리 (Story) 시나리오라고도 하며 레벨 디자인의 근간이 되는 요소다. 보통은 글, 간략한 스케치에 의해 구현되며 플레이어가 처한 상황및 배경을 서술한다. 이 스토리를 기반으로 게임 제작자/레벨 디자이너가 스토리가 서술하는 환경을 실제화하게 된다. #2 환경 (Enviroment) 스토리를 기반으로 각종 타일, 지형, 광원, 장식물, NPC등의 애셋의 적절한 조합과 배치로 플레이어가 경험하게될 유니크한 분위기나 상황을 실제로 연출한다. #3 목표 (Objective) 플레이어가 해당 공간에 ..
C# List 정렬하는 방법 오브젝트의 특정 값에 의한 C# 리스트(List) 오름차순 혹은 내림차순 정렬. Linq OrderBy를 이용해 List 오브젝트, 그 속성값으로 큰 숫자순, 작은 숫자순으로 정렬하는 방법. 낮은가격순, 높은가격순으로 객체 정렬하기? #1. Linq 참조. #2 Orderby 함수, 다음 코드를 사용. 새로운_리스트 = 목표_리스트.OrderBy(아무문자 => 아무문자.비교할값).ToList(); 위의 함수를 사용하면 낮은 가격순으로 정렬한다. (1,2,3,4...) 높은 가격순으로 정렬하고 싶으면? 리스트.Reverse(); :3
유니티 구글 플레이 로그인 Canceled? Releases signed by Google Play Credentials SHA-1 키 불일치 사건. WTF IS GOING ON?! (O_O)? 게임 출시에 앞서 많은 테스팅을 진행하던중 좀 뜬금없지만 기이한 상황이 벌어졌다. 상황/문제 유니티에서 빌드해서 직접 모바일 기기에 게임을 삽입해서 게임을 설치-실행하면 로그인이 잘되고 구글 플레이 클라우드 서비스도 잘 이용할 수 있다. 하지만 클로즈드 테스트, 인터널 테스트등으로 구글 플레이에서 게임을 다운로드, 설치하면 자동 로그인도 작동하지 않고 그에 따라 구글 플레이 클라우드 서비스를 이용할 수 없다. Anti-Piracy? (비허가 제3 경로 설치시 구글 플레이 서비스 이용불가) (Play Game Se..
유니티 모바일 게임에서 플레이어에게 구글 플레이 리뷰 요청하기. 유니티로 제작된 안드로이드 모바일 게임에서 플레이어에게 구글 플레이 레이팅/리뷰를 요청할수있다. #1 패키지 설치. https://developers.google.com/unity/packages#play_in-app_review #2 스크립트로 리뷰 요청하기. #3 구글 플레이 인앱 리뷰 요청은 다음과 같은 조건이 있다. 1. 반드시 구글 플레이를 통해 설치/소유한 앱이여야함. 2. 계정당 1회 이상 부를 수 없음. #4 불만 :: 답답한 API 이 API는 매우 기본적인 기능만한다. 플레이어가 실제로 리뷰를 했는지 안했는지도 안알랴준다. API가 플레이어가 어떤 행동을 했는지 아무런 반응, 콜백도 주지 않는다. 조건 불만족에 따른 기타 ..
유니티 모바일 게임 안드로이드 앱 자동 업데이트 기능 업데이트 체크 앱에서 구글 플레이 API를 통해 업데이트 실행하기. 앱실행시 자동으로 구글 플레이와 연동해서 업데이트가 가능한지 확인하고 업데이트 하도록 하기. #1 Play In-App Update 패키지 다운로드 https://developers.google.com/unity/packages#play_in-app_update 왜 구글 플레이 API 자체에 있지 않은지 의문스럽지만 패키지를 따로 다운로드하고 설치해야한다. (패키지 설치할때 언제나 백업만들고 진행한다.) #2 업데이트 스크립트 짜기. 1단계 : using 참조하기. 2단계 : 안드로이드용 업데이트 함수 만들고 시작 스크립트에 적절히 배치하기. 3단계 : 본격적으로 업데이트 함수 스크립..
그림던 울티밋 난이도 처음부터? - GD Stash 하드코어 처음부터 울티밋 난이도로 즐기기! 1. GD Stash 라는 유틸 프로그램을 이용하면 처음부터 울티밋 난이도 (최고 난이도)에서 게임을 즐길 수 있다. - 참고 : https://dodnet.tistory.com/4699 2. 그림던 울티밋 난이도는 그림던의 최고 난이도로 보통은 노멀 -> 엘리트 를 거쳐야 언락된다. 즉 최고 난이도 컨텐츠에 도전하려면 같은 게임을 최소 2번은 클리어해야하는데 너무 지루하기 짝이없다. 디아블로 aprg 게임들의 고유한 난이도 증가/반복 컨텐츠이지만 너무 시대에 뒤쳐지고 시간 낭비가 크다. 3. 울티밋 난이도를 GD Stash를 통해 언락했지만 너무 어렵다. 애초에 레벨1부터 플레이하게 만든 난이도가 아니라서 그..
유니티 구글 플레이 클라우드 데이터 저장 세이브,로드 구현하는 방법. 유니티~모바일 구글플레이 서버를 이용해 데이터(바이너리) 저장하는 방법. #1 사실 이 주제로 전에도 한번 글을 쓴적이 있었다. 링크 : https://dodnet.tistory.com/3862 문제는 구글 플레이 API가 진보를 거듭하면서 더이상 작동하지 않게되었다는거다. #2 유니티 모바일 게임 구글플레이 클라우드 데이터 저장 방법. 간단히 구글 플레이 클라우드 저장, 로드하는 과정을 써보면. 1단계 : 연결. 2단계 : 데이터 접근. 3단계 : 데이터 저장 및 불러오기. 이렇게 3과정으로 나뉜다. #3 게임 클라우드 저장 지원하기. 구글 플레이 콘솔에서 Play Game Services > Setup and management >..
유니티 IAP 인앱 구입, 인앱 구입 구글 플레이 아이템 구입 시스템 구축하는 방법. 인앱 광고와 더불어 게임을 통해 수익을 올릴 수 있는 좋은 방법중 하나인 인앱 구입, 아이템 구입을 구현하는 방법이다. 생각보다 쉬우니 차근차근 단계별로 따라하면 10분안에 구축이 가능하다. #1 프로젝트 백업 - 무언가 큰 사이즈의 패키지, 시스템을 도입하기전에 프로젝트를 통째로 백업해서 언제라도 롤백할 수 있도록 안전하게 저장하고 버전관리하는 모든 개발자의 필수-기본 덕목이다. #1 Project Settings > Services > In-App Purchasing 에서 유니티 인앱 구매 시스템 켜기. (Importing 완료후 유니티 재부팅.) #2 구글 플레이 콘솔에서 판매자 계정 (Payments profil..
C# 문자열 검색 문자열 포함 여부 확인하는 함수, 대문자 소문자 상관없이 string에 특정 string 패턴이 포함되어 있는지 확인하기. 인벤토리 검색, 파일 검색, 페이지 검색시 사용되는 검색 함수. 흔한 인벤토리 검색, 파일 이름 검색시 사용되는 문자열 패턴 검사 Linq 함수다. (패턴식 문자열 포함, 대문자 소문자 상관 X) 검색대상.Any(아무문자 => 검색대상.IndexOf(검색키워드, StringComparison.OrdinalIgnoreCase) >= 0); * 당연히 Linq 참조가 필요하다. string.contain과 다르게 완벽한 매치가 아니라 일부만 포함되어 있어도 결과를 반환한다. "ABCD" -> "BC" 검색시에도 결과에 포함 하지만 "BD" 검색시 포함되지 않음. "문자..