728x90
반응형

유니티 72

로그캣 사용하기, 안드로이드에서 환경변수 설정하기 [Unity]

안드로이드에서 오류를 발견하기 위해서는 유니티 콘솔과 같은 창이 필요하다. 하지만 직접 볼 수는 없기에 PC를 이용해야 하는데 그것이 바로 로그캣이다. 하지만 바로 로그를 볼 수는 없고 몇 가지 해야할 일이 있다. 우선 ADB(Android Debug Bridge)를 설정해야 한다. 쉽게 말하자면 PC에서 안드로이드에 명령을 내릴 수 있게 도와주는 도구다. 하지만 adb를 사용하기 위해서는 cmd창에서 adb.exe의 경로로 이동해서 명령을 날려야 하는데 매번 경로로 찾아들어가기 번거롭기 때문에 환경변수를 설정해서 어디서든지 adb를 사용할 수 있도록 설정한다. (※안드로이드 스튜디오 설치시 특별히 경로를 변경하지 않았다면 adb의 경로는 C:\Users\"로그인한 계정"\AppData\Local\And..

Unity 에서의 MVC 패턴

0.Model의 역할 게임을 이루는 데이터를 담당한다. Business Logic을 담당한다. ** 즉, Data가 바뀌는 Logic은 Model에서 짜야 한다. 유저 입력을 바탕으로 Controller에서 계산해서 집어넣는다? => X 그러면 안된다. 데이터가 바뀌면 OnChange를 실행하여 View Event를 실행한다. (View는 Model을 항상 Observing 하고 있다) 1. View의 역할 Model(Data)를 받아서 User에게 보여주는 역할을 한다. UI라고 생각하면 된다. 이미지, 텍스트 등 유저에게 보여주는 부분이다. Formatting, Rendering 2. Controller의 역할 유저는 View를 통해 Data를 보고 조작하려고 할 것이다. 데이터 조작을 위한 Inpu..

백그라운드에서 실행 [Unity]

에디터를 쓰다보면 레퍼런스를 보느라 다른 곳을 클릭할 때가 많은데 항상.. 유니티 게임이 멈춰있다. 난 레퍼런스를 보면서 플레이를 하고 싶은데 ㅠㅠ 해결 방법이 있다. Build Setting에서 Run In Background를 체크하면 이제 백그라운드로가도, 포커스가 바뀌어도 게임이 진행된다. 항상 쓰는 것은 아니지만 알아두면 좋다.

구글 애드몹, GoogleAdmob id 빌드할 때마다 사라짐 [유니티, Unity]

유니티를 키거나 빌드 이후 뭔가 자꾸 에러가 뜨는데 id가 비어있어서 에러뜨는 경우가 무척 많다. 정말 화가난다 화가나. 분명 채웠는데?? 어느새 가보니 사라져있다. 아 왜 채워놨는데 사라지냐.. 그래서 영구적으로 채우는 방법이 있다. 프로젝트 폴더에 들어가서 GoogleMobileAdsSettings.asset을 찾는다. 그래서 여기다 id를 직접 넣는다. 그럼 된다. 광고 넣을 때마다 짜증나고 빌드할 때마다 짜증나지만 이걸로 해결 끝

Object Pooling 유니티에서 이용하기

Object Pooling은 많이 들어봤고 디자인 패턴 중에 가장 이해하기 쉬운 것이라고 생각한다. [Game Developer, 게임개발자/디자인패턴] - Object Pool, 오브젝트 풀, 객체 풀 [디자인패턴](최적화) 더군다나 Unity 2021에서는 이제 엔진에서 지원한다. 그래서 더 좋다. 공부할 때도 유니티의 native에서 지원하는 함수들을 바탕으로 하면 될 것이다. 1. ObjectPool을 이용하는 주체 using UnityEngine; using UnityEngine.Pool; public class Launcher : MonoBehaviour { [SerializeField] Bullet bulletPrefab; private IObjectPool bulletPool; privat..

아이템 인벤토리 확장 기능 구현하기

우리가 유니티에서 Inspector창으로 더 자세히 보듯이 아이템도 더 자세히 보고싶으면 어떻게 해야할까? 자세한 설명은 생략되어있음을 알고 읽자. 우선 필요한 것이 있다. 1. 내가 보고싶은 아이템 2. 해당 아이템에 대한 정보(스프라이트 등) 어떠한 로직으로 수행할 것이냐하면?? 1. 아이템 선택 2. 선택한 아이템에 대한 정보를 가져옴 3. Inspector창에 선택한 아이템을 띄움 **** 4. 해당 아이템을 회전시켜서 다른 각도에서 바라볼 수 있음 **** 시작해보자 우선 어떻게 아이템의 정보를 가지고 있을 것이냐..?에 대해서다. 나는 이번엔 Scriptable Object를 이용해서 아이템의 정보를 가지고 있을 것이다. public class ItemSO : ScriptableObject {..

휴대용 디바이스에서의 렌더링,Redering 조절로 배터리 소모 낮추기(OnDemandRendering)

전원이 연결되어 있는 PC에서는 상관이 없지만 특히 모바일에서 배터리 소모는 정말 큰 문제다. 배터리가 빨리 닳아버리면 게임을 못하기 때문이다. 그러면 게임 접속시간이 줄어들고 배터리가 빨리 닳게 되면 게임을 삭제한다. 라는 비약이 심했지만 어쨌든 중요한 요소 중 하나이다. 하지만 프레임을 낮춰서 Rendering 빈도를 낮추는 것은 도움이 전혀 되질 않는다. 게이머의 환경이 안좋아지기 때문이다. 즉, 우리는 게이머가 불편함을 느끼지 않게 하면서도 배터리를 줄일 수 있는 방법을 찾아야 한다. 그것이 바로 OnDemandRendering이다. https://docs.unity3d.com/ScriptReference/Rendering.OnDemandRendering.html 이해하기 위해서 먼저 알고 가야하..

Unity IAP, In-App Purchase, 유니티 인앱결제

Unity 는 언제부턴가 Codeless한 툴을 제공하기 시작했다. 하지만 어차피 스크립트 구현부분을 만들어야 하기에 나는 그것을 버리고 했다. 나는 스크립트로 만들어진 공개된 코드를 찾고자 했으나.. 못찾음 알아보도록 하자 하지만 몇가지는 찾았고 내 식으로 설명하려고 했다. ** 주석을 읽으면 다 이해된다. 우선 IAP에 대해 안다고 치고.. 스크립트 작성에 대해서만 알아보자 using System; using UnityEngine; using UnityEngine.Purchasing; //IStoreLinster는 구매와 관련된 이벤트를 관리함. public class IAPManager : MonoBehaviour, IStoreListener { public static IAPManager inst..

유니티 빌드 설정에 대한 고찰, Unity Build Setting

일반적으로 Android를 플랫폼으로 잡고 빌드한다고 가정하고 시작해보자. 짧게 말하면 APK를 만들어내는 행동이 바로 빌드이다. 알아보자 1. APK와 AAB 우선 옛날부터 나는 아이폰 유저지만.. 안드로이드 폰을 보면 모바일 게임 크랙판을 쓰는 친구들이 많았다. 특히 중학생 때.. 엄청 많았다. 그럴 때마다 친구들이 하는 말.. APK 파일을 보내달라 내 폰에 직접 넣게 라는 말이었다. 하지만 2021년 8월 구글은 APK 파일을 구글 플레이 스토어에 올리지 못하게 하였다. 기존의 올렸던 앱들은 유지하되 새로 올라오는 컨텐츠는 AAB 확장자로만 올려야 한다는 말이다. 그렇다면 APK는 익숙하고 AAB는 뭘까?? 제일 좋은 그림이 구글에 있어서 가져왔다. 그림을 살펴보자.. AAB에서 APK로 변환될 ..

String과 StringBuilder의 차이, 용도 [Unity]

우리는 문자열이라면 무심코 String을 쓴다. 그게 잘못되었다는 말이 아니다. 다만 게임이라는 볼륨이 큰 작업에 있어서는 최적화 작업 중 하나가 될 수 있다는 것이다. ??? 어떻게 하는데??? 알아보자 우선 string 클래스가 있어서 우리는 문자열을 쓸 수 있다는 것을 안다. 하지만 StringBuilder 클래스도 있는데.. 왜 이것이 최적화가 된다는 말인가??? -> 물론 모든 곳에서 쓰이는 곳이 아니다. -> 프로그래밍에서 무조건 좋은 방법이란 없다. Trade-off 라는 것을 명심하자. 예를 들어보자. 캐릭터가 살고 있는 주소를 표현한다고 하자. //용산역에 살고 있다면..? string myAddress = "서울시" + "용산구" + "뭔동"; 아무튼.. 저기서 문자열이 합쳐질 때 우리..

728x90
반응형