겨울팥죽 여름빙수
article thumbnail
Unity, Google Play Game Service 인증 무한 로딩 현상
게임을 만들자/Unity 2021. 1. 24. 04:02

이틀동안 삽질 했었다. Google Play Game Service 인증 시 아래와 같이 무한 로딩하는 현상이 발생했는데, 해결방법이 뚜렷히 보이지 않았다. 우선 확실한 원인 파악을 위해 확인해 본 것을 정리 해 보면, - sha-1 앱서명 키 값이 올바르게 적용 돼 있는지 - 플레이 게임이 출시 돼 있는지 - 베타테스트 트랙이 등록 돼 있는지 보통 위의 것들을 확인 해 보면 된다고 했는데, 나는 모두 올바르게 돼 있었다. 단 한가지를 뺴고 ㅠㅠ 바로 앱서명 동의화면이 테스트 단계로 돼 있던 것이었다. 위의 앱 게시를 눌러, 프로덕션 상태로 만들면, 잘 동작하게 된다.

article thumbnail
Unity Built-in to URP 변환하기
게임을 만들자/Unity 2020. 12. 17. 19:48

유니티 URP란 Unity 2019.3버전부터 경량 렌더 파이프라인(Lightweight Render Pipeline, LWRP)이 유니버설 렌더 파이프라인(Universal Render Pipeline, URP)으로 변경되었습니다. URP는 아름다운 그래픽과 뛰어난 성능을 제공하는 강력한 솔루션으로 이제 더욱 다양한 플랫폼에서 사용 가능합니다. 또한 최신 아티스트 툴을 지원하고 2D, 3D, 가상 현실(VR) 및 증강 현실(AR) 프로젝트 모두에 적합합니다. LWRP는 모든 모바일 디바이스에서 고품질 그래픽스를 구현하는 빠르고 확장 가능한 파이프라인입니다. 지난 한 해 동안 이 스크립터블 렌더 파이프라인(Scriptable Render Pipeline)은 정식으로 제작에 사용할 수 있는 수준으로 성장했..

article thumbnail
Unity, VS4M, Debugger operation failed. 해결
게임을 만들자/Unity 2020. 11. 9. 17:35

유니티에서 작업 중, 스크립트 에러를 클릭 해, 소스코드를 열었는데, 위와 같이 디버깅이 안되는 문제가 생겼다. 왼쪽 위 빨깐 박스 모양도 바껴있다. 정상적이라면, 아래와 같은 그림이어야 한다. 위와 같이 명확하게 [유니티에 연결] 이라고 표시 돼야 디버깅이 된다. 내 소스코드가 아니라, 엔진 내부에서 발생한 에러코드를 클릭 해, 여는 경우 발생하는데, 한번 이렇게 되면, 계속 디버깅이 안된다. 이 문제를 해결하기 위해, - 껐다 켜기 - 재부팅 - 유니티 디버깅 기능 껐다켜기 방법 등을 써봤으나 모두 실패 했다. 혹시나 해서, 다른 유니티 프로젝트를 켜봤는데, 그 프로젝트는 잘 연결되는 것으로 보아, 해당 프로젝트만 뭔가 꼬였구나라는 걸 직감했다. 스크립트 파일을 더블클릭 해, 파일을 여는 것이 아닌,..

Unity, Coroutine(코루틴) Lamda(람다식) 사용
게임을 만들자/Unity 2020. 9. 25. 16:05

간혹 어떤 코드가 1프레임 혹은 몇 초 후에 실행됐으면 하는 때가 있다. 예를 들어, Ui를 초기화하고, 한프레임 후 구성요소의 위치나 크기를 가져와야 하는 경우가 그렇다. 초기화하고 바로 값을 읽으면, 원하는 값을 얻을 수 없다. 아마 Unity내부에서 렌더링 되지 않아서 인 것 같다. 이 경우 한프레임 후, 그 값을 읽으면 잘 읽힌다. 이때 한프레임 후 실행되게 할 때, 코루틴을 많이 사용하는데, 이게 은근 사용하기 귀찮게 돼 있다. 좀 더 간편하게 코루틴을 사용하기 위한 클래스들 만들어보자. 1. CoroutineManager 싱클톤 클래스 아래와 같이 싱글톤 클래스를 만들어보자. 2020/01/07 - [게임을 만들자/게임 서버(C#)] - c# 싱글톤 제네릭 클래스 using System; us..

article thumbnail
Unity, 앱 종료 및 재시작(안드로이드)
게임을 만들자/Unity 2020. 9. 17. 21:11

유저가 뒤로가기 버튼을 두번 연속으로 눌러 앱을 종료시키거나, 업데이트가 후, 재시작이 필요한 경우가 있다. 1. 앱 종료 public static void EndApp() { #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false; #else UnityEngine.Application.Quit(); #endif } 앱 종료는 에디터 상태인 경우와 앱 상태인 경우가 조금 다르다. 방법은 위와 같이, 에디터의 경우엔 UnityEditor클래스를 이용하고, 앱은 UnityEngine.Application클래스를 이용한다. 2. 앱 재시작(안드로이드) if (Application.isEditor) { jdUtil.EndApp(); return; } ..

article thumbnail
Unity, c# Http Get 통신
게임을 만들자/Unity 2020. 9. 8. 13:49

현재 나는 소켓통신으로 서버와 데이터를 주고 받지만, 게임의 버전 정보나, 이벤트 성 데이터를 받아 올 때는, Http통신을 이용하고 있다. 1. 코드 public static string HttpGet(string url) { string responseText = string.Empty; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.Timeout = 30 * 1000; // 30초 request.Headers.Add("Authorization", "BASIC SGVsbG8="); // 헤더 추가 방법 using (HttpWebResponse resp = (HttpWebRes..

Unity, String(Hex) To Color, Color To String(hex)
게임을 만들자/Unity 2020. 7. 22. 16:18

유니티 Color객체를 생성할 때, 생성자 파라미터로, rgba색상 값을 입력할 수 있다. 이때 r,g,b,a 각각의 값은 [0~1]사이의 소수점이다. 하지만 우리가 인터넷이나, 포토샵 등 원하는 색상값을 검색해 온 경우, 'FF00B5' 16진수 문자열 값을 얻어오는 경우가 많다. 이런 경우 Color객체를 생성하는 방법에 대해 알아보자. 1. String(Hex) To Color 16진수 문자열을 Color객체로 바꾸는 방법은, 16진수 문자를 각각을 [0~255]사이 숫자로 바꾸고, 그 결과를 255로 나눠주면 된다. public static Color StrToColor(string str) { str = str.ToLowerInvariant(); if(str.Length == 6) { char[..

article thumbnail
Unity Ui Slider, Pointer Up 이벤트
게임을 만들자/Unity 2020. 7. 19. 17:10

유니티 UI의 Slider는 HP바, 프로그레스바 등으로 많이 사용 되고 있다. 나 같은 경우, 사용자가 장비를 판매 할 때, 장비 등급에 따라 일괄 판매하도록 하는데, 그 표시 등급 설정 및 표시를 Slider를 사용하도록 했다. 1. Event Trigger Slider에 OnValueChaged라는 이벤트 함수를 등록할 수 있지만, 내가 원하는 건, 손을 뗐을 때 발생하는 이벤트 함수이다. 이 경우, 위와 같이 Event Trigger 컴포넌트를 사용해야 한다. Pointer Up 이벤트를 Slider 오브젝트에 추가하자. 2. 이벤트 함수 코드 아래 코드를, MonoBehavior를 구현한 객체 클래스에 넣자. public void OnSpideUp(BaseEventData eventData) {..

article thumbnail
Unity UI, 더블클릭, 드래그 앤 드랍
게임을 만들자/Unity 2020. 6. 9. 16:13

게임 중 장비를 장착하거나, 그 순서를 바꿀 때, [드래그 앤 드랍], [더블 클릭] 기능으로 유저들에게 편의를 제공 해 줄 수 있다. 사실 이 기능들이 구현이 어려운 건 아니나, 조금 작업이 귀찮긴 하다. 그래도 많이 쓰이는 만큼 알아두면 좋을 것이다. 1. 더블 클릭(double click) 나는 장비나 아이템을 장작할 때, ui에 [장착/해제]버튼을 구현 해 두었다. 그렇지만, 위와 같이, 더블 클릭 해 [장착/해제]를 할 수 있다면, 유저들이 더 편하게 게임을 이용할 수 있을 거라고 생각했다. public class EquipSlot : MonoBehaviour, IPointerClickHandler { ..... float currentTimeClick; public void OnPointerC..

article thumbnail
Unity 파티클 시스템
게임을 만들자/Unity 2020. 5. 23. 14:43

위의 장작불 위에 피어오르는 불꽃은 Unity 파티클 시스템을 넣은 것이다. 직접 sprite를 그려 할 수도 있었지만, Unity파티클 시스템을 이용하면, 간단하게 효과를 적용할 수 있다. 1. 파티클 오브젝스 생성 위와 같이 [Hierarchy]창에서 넣고 싶은 위치에 우클릭 해, 파티클 시스템 GameObject를 넣을 수 있다. 위 그림과 같이 파티클 시스템에는 너무 많은 옵션들이 있다. 이 옵션들을 다 설명하기는 힘들고, 주로 사용할 것 같은 것만 알아보자. 2. 파티클 오브젝트 설정 - 시뮬레이트 해보기 파티클 시스템 오브젝트를 클릭하면, 게임을 실행하지 않고도, Scene창에서 파티클 시스템을 시뮬레이트 해 볼 수 있다. (1) 파티클 입자 방향 및 속도 조절 - Start Speed : 파..