개요 [Unity] HTTP REST api 통신 모듈 구현 개요 사내에 딱 정해진 REST api 통신 모듈이 없다보니 직접 만들고 다음 프로젝트가 진행될때마다 겪었던 시행착오들을 상기하며 모듈을 보완, 발전 시키고 있다. 이제는 틀이 꽤 잡힌것 같아서 trialdeveloper.tistory.com 위 글에서 작성했던 통신 모듈을 팝업 시스템 구현에 사용한 빌더패턴으로 재구성을 하는 글이다. 이유는 리퀘스트 전송 함수를 이런식으로 짰는데 protected virtual IEnumerator SendRequestCor(string url, SendType sendType, JObject jobj, Action onSucceed, Action onFailed, Action onNetworkFailed) ..
개요 GoF 디자인 패턴중 생성 패턴에 해당하는 Builder패턴을 이용하여 팝업UI 시스템을 구현한 것을 기록한다. GoF디자인 패턴은 아래 블로그에 자세하게 설명해주셨다. [Design Pattern] GoF(Gang of Four) 디자인 패턴 - HERSTORY 디자인 패턴이란 디자인 패턴은 모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할때 참조할 수 있는 전형적인 해결 방식을 말한다. 디자인 패턴을 통해 설계 문제, 해결 방 4z7l.github.io Builder패턴은 동일한 프로세스를 거쳐 다양한 구성의 인스턴스를 만드는 방법이다. 만들어야할 객체가 다른옵션 한두개만 가지고있다면 생성자 혹은 따로 Init()함수를 만들어서 파라미터로 옵션을 넘겨줘도 될것이다. 하지만, 옵..
개요사내에 딱 정해진 REST api 통신 모듈이 없다보니직접 만들고 다음 프로젝트가 진행될때마다겪었던 시행착오들을 상기하며 모듈을 보완, 발전 시키고 있다. 이제는 틀이 꽤 잡힌것 같아서한번 기록을 해둘려고 한다. 본문먼저 들어가기에 앞서,이 모듈은 Json을 쉽게 입출력 하기 위해Newtonsoft.Json 패키지를 사용하였다. 이 패키지에 대한 설명은 아래 글에 기록해뒀다. [Unity] JSON을 딕셔너리처럼 입출력하기Unity의 JsonUtility를 사용하다보면 커스텀 클래스를 쉽게 JSON으로 파싱할 수 있지만 원하는 변수 몇개만 JSON으로 파싱해주는 기능이나, 파싱 이후에 변수룰 추가, 삭제, 수정을 할 수 있게해주는 기trialdeveloper.tistory.com 먼저 Server..
개요최근 작업중인 프로젝트에서 실시간 pvp모드를 개발하고 있었다.프로토타입은 포톤을 이용해서 동기화를 진행한 후 플레이를 해봤고,이제 회사의 TCP서버로 이전해 달라는 지시가 내려와 작업을 진행하였다. 포톤의 경우에는 TransformView 컴포넌트가 있어서위치동기화의 경우 아주 쉽게 구현할 수 있는데 직접 위치 동기화를 구현할려면 아무리 정보를 모아서 한번에 보낸다 해도매 프레임 패킷을 보내는거는 무리가 있다. 그래서 데드레커닝 기법을 활용하여 위치 동기화를 구현한 사례를 적는다. 본문마우스로 이동하는게임이었다면 꽤 간단한 문제였을것이다.예를들어 LOL이라면유저가 마우스로 목적지를 클릭하면 그때 한번만 출발지와 목적지를 동기화 하고양측 클라이언트는 결과가 같다는 보장이있는 길찾기 알고리즘을 사용하..
개요 씬뷰에서 스크린샷을 찍고싶을때가 있다. 기즈모도 그리드도 전부 꺼둘수있지만 씬뷰 오른쪽 위 상단에있는 요녀석은 유니티 최신버전이 아니면 끄는기능이 없다. 참고로 유니티 최신버전이라면 아래 이미지와같이 간단하게 끄면된다. 이 글은 저 아이콘없이 깔끔하게 씬뷰를 캡쳐하는 방법이다. 본문 스스로 해결한 방법은 아니고 검색해서 좋은 방법을 알아내서 기록한다. 결과물을 미리 보자면 이와같이 코드로 기능을 만들어 에디터 메뉴로 등록해서 캡쳐하는 방법이다. 코드는 다음과같다. #if UNITY_EDITOR using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEditor; using ..
개요 구글시트에서 데이터를 불러오는 작업을 하던중 데이터를 불러와서 기존 ScriptableObject에 덮어씌우기만 하지말고 있다면 덮어씌우고 없다면 생성하는 시스템을 만들고싶어졌다. 그래서 작업을 진행했고 해당내용을 기록한다. 사용한 에셋 https://assetstore.unity.com/packages/tools/utilities/google-sheets-to-unity-73410?locale=ko-KR Google Sheets To Unity | 유틸리티 도구 | Unity Asset Store Use the Google Sheets To Unity from Greener Games on your next project. Find this utility tool & more on the Unit..