반응형

유니티 13

ui 이벤트가 일반 input 이벤트 구분하기

유니티에서 ui를 클릭 혹은 터치해도 게임 중 입력 이벤트를 처리하는 부분에서 계속 문제가 발생했다. 게임 ui를 유니티의 ui로 만들지 않았을때는 몰랐는데, 이거 어떻게 처리해야 할지 한동안 고민이 많았는데... EventSystem.current.IsPointerOverGameObject 라는 함수가 있는지 몰라서 한참 고생했네;; 아래와 같은 클래스를 하나 추가해서 처리. using UnityEngine; using UnityEngine.EventSystems; using System.Collections; public class InputEventManager : MonoBehaviour { public bool GetMouseDown(int _idx){ if (EventSystem.current..

기본 파일에 리소스를 포함하는 여러가지 방법

* 정적으로 사용된 리소스 : 특정 씬에 포함된 리소스는, 빌드 시 해당 씬을 포함하면 배포되는 기본 파일에 포함됩니다. * 동적으로 사용된 리소스 : 동적으로 로딩되는 리소스는 아래 몇가지 방식으로 동적 로딩을 진행할 수 있습니다. 1. Resources 라는 폴더명을 만들어 리소스를 넣어두면 기본 파일에 포함됩니다. Resources.Load 함수로 동적 로딩 할 수 있습니다. >> Resources 폴더는 여러개를 만들어 사용할 수 있습니다. 추후 이 폴더명 안에 있는 리소스들은 빌드 시 하나로 합쳐지는데, 같은 파일명이 있으면 문제가 됩니다. 파일명이 중복되지 않도록 주의하시기 바랍니다. >> AssetBundle 파일을 이곳에 넣어둘 수 있습니다. AssetBundle.CreateFromFile..

Stealth 데모 중 4.x -> 5.x 차이점 정리.

GAME SETUP AND LIGHTING 1. Mesh Collider에 Mesh 말고 Material이 추가로 있음. : 충돌체에 매터리얼이 필요한 이유가 뭐지?? 2. Camera의 Rendering Path 선택 옵션이 다름. 4.x >> Vertex Lit, forward, Deferred Lighting 5.x >> forward, Deferred, legacy Vertex lit, legacy Deferred (light prepass) : 기존의 Deferred Lighting 이 legacy Deferred가 된건가? (그러니까 legacy가 된거겠지??) : 그럼 현재의 Deferred와 legacy Deferred의 차이는 무엇일까? 3. Edit -> Render Setting은 W..

Stealth를 5.x 버전에서 가동하기

굳이 이럴 필요 없으나, 이 샘플이 워낙 잘 구성되어 있다고 하니, 이걸 5.x에서 가동시키면 여러모로 도움될 듯 해서 시도해 봄. 할 일 없어서 이거 하는거는 비밀.. 처음 import 받으면 발생하는 에러들. 1. UnityEngine.Component 로 사용되는 것들을 GetComponent()로 수정할 것! 한 50개 정도 되는 듯. 2. doneSceneFadeInOut.cs는 주석처리. Assets/Done/DoneScripts/ScreenFaderScripts/DoneSceneFadeInOut.cs(15,28): error CS1061: Type `UnityEngine.Component' does not contain a definition for `pixelInset' and no ext..

Google Analytics 연동하기 - 5. 리포트 확인

한 가지 핑계를 대고 넘어가야겠다. 어제 로깅 코드를 만들 때 모든 데이터를 event로 처리한 걸 기억하길 바란다. 사실 모든 게임의 로그를 이벤트로만 처리하는 것은 당연히 잘못된 방법이다. 하지만, 이 글은 Google Analytics와 Unity를 연동하는 과정을 설명하는데 목적을 두고 있다. 구글 애널리틱스에 적합하게 로깅하고 리포트를 분석하는 글이 아님을 밝힌다.(절대 몰라서 그런거... 맞음. --) 아마 대부분의 통계툴이 그렇겠지만, 데이터를 샘플링한다. 그래서 모든 데이터를 세세하게 보지는 못한다. 이번 테스트에서는 어제 게임 두 판만 했음. 팔이 아파서..데이터가 적기 때문에 추론하는 방법만 간단히 언급하겠다. 이제 본론 시작!! 데이터 조회는 보고서 속성에 설정한 시간대에 정리가 된다..

Google Analytics 연동하기 - 4. 이벤트 전송

기반 준비는 다 되었다. 이제 실제 이벤트를 전송하고 그 결과를 어떻게 보는지 살펴보자. 이 전 글에서 공유했던 목표는 아래와 같다. 1. 몇번째 스테이지에서 주로 좌절하는가 : Game Over되는 시점의 Day 날짜를 전달하자. 2. Food의 획득, 이동 시 사용하는 량, 좀비에게 타격받아 소비되는 량 : Food 나 Soda 획득시 획득량 전달 : 이동할 때마다 1씩 소비됨. 이 정보 전달 : 좀비에게 공격 당하면 10씩 소비된다. 이 정보 전달. 3. 각 스테이지 별로 몇 번 정도의 이동으로 클리어 하는가. : 각 스테이지가 클리어 될 때 총 이동 횟수 전달. event parameter는 총 4개로 구성되며, string category, string action, string label, i..

Google Analytics 연동하기 - 3. 샘플 초기 세팅

샘플 제작을 위한 게임 샘플은 2D Roguelike를 사용했다. Android를 기준으로 설명한다. iOS에 대한 내용은 다음 글에서 세팅과 관련된 내용만 다루도록 한다. 그 이외의 내용이 다르진 않으니.. 트래킹을 위한 1차 목표는 아래와 같다. - 몇번째 스테이지에서 주로 좌절하는가 - Food의 획득, 이동 시 사용하는 량, 좀비에게 타격받아 소비되는 량 - 각 스테이지 별로 몇 번 정도의 이동으로 클리어 하는가. Google Analytics 설정 절차 1. google 계정을 생성 후(기존 계정 사용 가능) https://www.google.com/analytics/에 로그인한다. 2. 애널리틱스 계정이 없다면 계정을 생성하는 폼이 출력될 것이다. 그곳에 원하는 대표 계정명, 속성명(속성은 프..

Google Analytics 연동하기 - 2. API 살펴보기

(* 원문 : https://developers.google.com/analytics/devguides/collection/unity/v3/reference?hl=ko )*역자주 : 원문을 그대로 변역하는게 아닌, 실무에 적용하면서 불필요하게 긴 내용은 빼고, 추가할 내용은 넣으면서 진행합니다. 번역이 아님을 알아주세요. ^^a 데이터를 보낼 때는 Basic 나 Builder method를 사용합니다. Builder method들은 보낼 정보들에 대한 수치, campaign 파라미터들을 추가하길 원할 때 사용됩니다. Dispatch Hits네트웍 연결이 가능하다면 데이터를 전송한다.public void DispatchHits(); Session ControlSession들은 스크린 뷰, 이벤트들 그리고 ..

Google Analytics 연동하기 - 1. 초기 설정

아래 주소에서 package를 다운로드 할 수 있다. 이 글 작성일 기준으로 아직 베타임. https://github.com/googleanalytics/google-analytics-plugin-for-unity?hl=ko 이를 사용하기 위한 정책이 있다.(변경 될 수 있으니 , https://developers.google.com/analytics/devguides/collection/unity/policy?hl=ko 를 꼭 읽어볼 것!) 1. 당연하지만, Google Analytics Account가 필요하다. 2. End User에서 당신이 Analytics로 전송하는 데이터에 대한 동의를 얻어야 하며, 유저에게 보낼지 말지를 선택할 수 있는 옵션을 제공해야 한다. 3. 이메일, Social Se..

Unity에서 다른 클래스의 코루틴 호출하기

패치 모듈 만들다가 패치 모듈의 코루틴을 써야되는 상황일 때.. StartCoroutine은 non-static member function입니다. 결론만 간단히 ... 아래와 같이 활용하세요. // 활용 코드Test test = GameObject.Find("TestPrefab").GetComponent();yield return test.StartCoroutine( test.startPatch()); (in Test.cs)// 샘플 Test class 선언 형태public class Test : MonoBehaviour{public IEmumerator startPatch(){ . . .}} * TestPrefab을 만들어서 Test script 연결해 해당 씬에 등록하세요.

반응형