본문 바로가기

전체 글489

[unity] 모듈 제작 : 팝업 시스템 만들기(1) Unity에서 UGUI를 사용하여 빌더 패턴을 통해 공통 팝업 시스템을 만드는 방법에 대해 알아보자. 1. 팝업 시스템 소개 유니티에서 각 씬이나 화면마다 팝업에 해당하는 UI를 구성하고, 이벤트를 연결해주는 작업은 상당히 많은 시간을 소비하게 한다. 따라서 자주 사용하는 팝업 시스템 같은 요소는 공통화 시스템으로 제작하여 싱글톤 패턴으로 인스턴스를 공유해서 사용하면 개발 시간 절약 및 유지보수에 상당히 유용하다. 따라서 이번 글에서는 싱글톤 패턴과 빌더 패턴을 사용하여, 팝업 시스템(모듈)을 만들어 보고자 한다. 싱글톤 패턴을 통해, 다양한 씬에서 하나의 인스턴스를 가지고 호출할 수 있게 할 수 있는 장점이 있으며, 빌더 패턴을 사용하면, 팝업의 필요한 데이터만 설정할 수 있어 가독성도 좋아지고, 유연.. unity3d/Modules 2022. 5. 24.
[unity] Build Script class Unity에서 프로젝트 세팅으로 하는 빌드가 아닌, 빌드를 스크립트를 통해서 빌드할 수 있는 Build Script Class를 제작해보자. 1. Build Script를 사용해야 되는 이유 - Unity에서 빌드는 File Build Settting -> Build or Build And Run을 통한 빌드를 하는 것이 일반적이다. 하지만 프로젝트를 열때마다 입력해야 하는 keystore 비밀번호나, apk 경로, apk 이름 등을 간소화하고자 빌드 스크립트를 이용하는 경우도 많아지고 있다. - 게임이나 앱 제작 시 빌드 스크립트만 잘 구축해 놓아도 상당히 시간 비용을 줄일 수 있다. 2. Build Script 제작 방법 1. 우선 프로젝트를 열고 Asset/Scripts/Editor 폴더를 만들어 .. unity3d/Class 2022. 5. 20.
[unity] 구글플레이 인앱 업데이트 및 인앱 리뷰 연동 클래스 구글 플레이 API 중 Unity에서 사용하기 유용한 Play In-App Update와 Play In-App Review 클래스를 묶어 매니저 클래스를 만들어 보자. 1. Play In-App 사용 이유 - 구글에서 제공하는 Play In-App 라이브러리 중 Billing 이나 Play Asset Delivery 같은 api 도 있지만, 유니티에서 제공하는 인앱 결제 라이브러리나 addresable 같은 파워풀한 기능들이 있으니, 따로 추가할 필요는 없어 보인다. - Unity에서 사용할만한 Play In-App 은 Update와 Review가 유용해보인다. - Play In-App Update : 버전 코드가 올라간 앱이 플레이스토어에 출시되면, 앱에서 자동으로 사용자에게 앱 업데이트를 알려주고, .. unity3d/Class 2022. 5. 19.
[admob] app-ads.txt 추가 또는 업데이트 대응 방법 Admob에서 전달받은 'app-ads.txt 파일이 누락되거나 잘못되었습니다.' 경고 메시지에 대한 해결 방법에 대해 알아보자. 1. app-ads.txt 파일 누락시 발생할 수 있는 경고 - admob에서 app-ads.txt를 통해 광고 인벤토리를 판매하도록 승인된 광고 소스를 광고주가 식별할 수 있다. - 따라서, app-ads.txt 파일을 누락이 지속되면, 수익이 갑자기 줄어들 수 있음을 경고해 주고 있다. 2. 해결 방안 - Admob - admob에서 app-ads.txt 항목으로 진입하여 APP-ADS.TXT 설정 방법을 클릭한다. - 경고로 전달받은 E-mail 링크나 알림을 통해서도 직접 접근이 가능하다. - App-ADS.TXT 설정방법을 누른 후 아래 값을 복사해 놓는다. 2. 해.. unity3d/Troubleshooting 2022. 5. 18.
[unity] 에셋번들 shader missing(핑크색 현상) 코드로 수정하기 유니티에서 파일 관리 및 에셋 동적 로드를 위해 에셋 번들을 주로 사용한다. 하지만 간혹 유니티 버전을 올리거나 환경이 변경되었을 때 에셋 번들을 다운로드하면, 셰이더 컴파일 오류로 인해 모델이 핑크색(shader missing)으로 보이는 현상을 코드로 수정하는 방법을 알아보자. 1. Shader Missing 현상 분석 - Unity에서 AssetBundle 로드 시 간혹 아래와 같이 핑크색으로 보이는 화면을 마주칠 때가 있다. - Assetbundle을 제작했을 때의 환경(유니티 버전)과 다운로드 받았을 때의 환경이 다른 경우 주로 발생한다. - 메터리얼을 포함하는 컴포넌트는 다양한 종류가 있지만 우선 확인해봐야 할 컴포넌트는 MeshRenderer 컴포넌트이다. MeshRenderer 컴포넌트의 .. unity3d/Troubleshooting 2022. 5. 17.
[unity] Resize Image class 소셜 플랫폼이나 게임 앱에서 다양한 개인 사진을 서버로 업로드 할 때 용량의 문제가 발생한다. Unity에서 큰 사이즈의 Image 파일을 Resize 하여 작은 용량의 상태로 서버로 업로드 할 수 있는 방법에 대해 알아보자. 1. Resize Image를 해야 하는 이유 - 앱에서 개인 프로필 사진을 로컬에서 불러와서 설정하는 경우를 가정해보자. 사용자는 앱에서 갤러리 라이브러리를 열고, 내 사진을 선택하여 프로필 이미지를 교체하고 이 과정에서 프로필 사진은 바이트로 저장되어 서버로 전송이된다. 문제는 내 갤러리의 사진 사이즈가 2048 을 넘어가게 되면, 서버 부담도 커지고. 다운로드 받을 때 걸리는 시간도 길어질 것이다. - 물론 서버 단에서 이미지 최적화 후 다시 내려주는 경우도 있지만, 클라이언.. unity3d/Class 2022. 5. 16.
[unity] 모듈 제작 : 사운드 플레이어 만들기(3) 사운드 플레이어 모듈의 화면 구성 및 Bgm과 Effect Sound 의 컴포넌트 설정 방법에 대해 알아보자. 1. 사운드 모듈 연결 구성 - Modules 라는 Scene을 만든 후 Modules 라는 GameObject를 생성한다. - Modules 자식으로 SoundPlayer GameObject를 생성한다. - SoundPlayer GameObject 자식으로 Bgm과 Effect 라는 GameObject를 생성한다. - 하이어라키 구조는 다음과 같다. - Modules - SoundPlayer - Bgm - Effect - SoundPlayer GameObject에 SoundPlayer.cs 컴포넌트를 Add 해준다.(아래 그림 설정 방법 참고) - BGM GameObject에는 Audio So.. unity3d/Modules 2022. 5. 16.
[unity] 모듈 제작 : 사운드 플레이어 만들기(2) 사운드 플레이어 모듈의 핵심 스크립트인 SoundObject 클래스를 구현해보고, 적용 방법에 대해 알아보자. 1. 사운드 오브젝트 클래스 정의 - 해당 스크립트가 적용되는 GameObject는 AudioSource 컴포넌트를 필요로 한다. - 사운드가 재생되는 오브젝트에는 SoundObject 컴포넌트가 붙어야 한다. - 사운드 재생 기능을 구현한다. - 사운드의 일시정지/해제 기능을 구현한다. - 코루틴을 사용하여 일정 시간 Delay 후 재생 가능하도록 구현한다. - 재생이 완료 된 사운드 오브젝트를 Destroy 한다. 2. 사운드 오브젝트 클래스 구현 - Scripts 폴더에 SoundObject.cs 클래스를 생성한다. - SoundObject.cs 의 코드를 아래와 같이 작성해 보자. usi.. unity3d/Modules 2022. 5. 16.
[unity] 모듈 제작 : 사운드 플레이어 만들기(1) 앱 및 게임 제작 시 공통으로 사용하는 모듈을 제작해보자. 첫번째 제작 모듈은 사운드 플레이어 모듈이다. 사운드 플레이 기능은 각 씬이나 화면에서 공통으로 사용할 수 있게 모듈화 해 놓으면 상당히 유용하다. 1. 사운드 플레이어 모듈 제작 준비 - 유니티 버전은 2019 LTS 버전을 사용한다. (상위 버전에서도 큰 문제는 없다.) - Assets/Moduls/Sound 폴더를 생성한다. ( 마우스 우클릭 -> Create -> Folder ) - Sound 폴더 밑에 Prefabs와 Scripts 폴더를 생성한다. 2. 사운드 플레이어 모듈 기능 정의 - 하나의 사운드는 메모리에 올려져 있으며, 2개 이상 사운드가 동시에 출력되야 할 경우(이펙트 사운드) 하나를 추가적으로 동적으로 생성해서 재생한다. .. unity3d/Modules 2022. 5. 16.