본문 바로가기
반응형

개발/Unity354

Unity)Firebase)Firebase Storage 활용하기 Firebase Storage 활용하기 이번에는 Firebase Storage를 활용해보자 단순 저장소로도 사용이 가능하고 해당 이미지를 넣고 로드하는것도 가능하다. Console 페이지에서 Storage 를 생성한다. Storage에서도 보안 규칙(접근제한) 을 설정할 수 있다. 이미지 파일을 업로드해서 테스트를 진행한다. Firebase.Storage.StorageReference https_reference = storage.GetReferenceFromUrl("gs://test-6cbb5.appspot.com/temp.jpg"); const long maxAllowedSize = 1 * 1024 * 1024; https_reference.GetBytesAsync(maxAllowedSize).Con.. 2020. 10. 27.
Unity)Firebase) Remote Config 활용하기 Firebase  Remote Config 활용하기Remote Config는 특정한 config 값 빌드(실행파일)에 포함하지 않고 외부에서 변경할 수 있게 하는 시스템이다. 관리자 페이지에서 Config 값을 변경하면 Config 값을 읽도록 구성되어있는 서비스에서 Fetch를 받게 되면 변경된 값을 가져올 수 있다. Firebase에서는 기본적으로 JSON을 기본 형태로 적용되기 때문에 Key, Value를 기본으로 입력해야 한다. Firebase 참고 URL :  [원격 구성] Firebase에서 설정값을 넣으면 해당 값에 대한 가져오는 코드를 처리해야 한다.가이드에 보면 Default 값을 명시하라고 되어있어서 계정을 생성하는 순간에 값을 초기화해준다.그리고 Fetch를 받.. 2020. 10. 26.
Unity)Firebase) Function Database Trigger Example Firebase) Function Database Trigger Example Firebase Functions의 개발환경은 TypeScript 으로 진행했다. 구글 검색을 해봐도 예시가 별로 없어서 기록차 포스팅하게 되었다. Trigger라는 것은 특정 순간에 자동으로 실행되는 이벤트를 말하는 것이다. Example 코드에서는 유저 생성될 때 'onUserCreate'를 호출해서 createTime이라는 값을 자동으로 database에 쓰는 것을 목표로 했다. 'onChangeMessage'는 데이터베이스의 root의 하위 /users/자신의 id/message의 값이 변경되는 순간 messagePrev라는 항목에 이전 message의 값을 저장하도록 처리했다. (이전의 메시지를 자동으로 기록하도록) .. 2020. 10. 21.
Unity) Android Resolver ERROR: JAVA_HOME ~ Android Resolver  ERROR: JAVA_HOME ~Unity에서 Android Resolver를 사용하다 보면 ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation.  라는 에러를 볼 수 있다. JAVA_HOME에 대한 환경변수값이 설정되어 있지 않아서 그런 경우인데 이럴 경우에는 JAVA_HOME의 환경 변수만 잡아주면 해결이 된다.[Edit] -[Preferences]-[External Tools]- JDK의 경로를 Co.. 2020. 10. 19.
Unity) Library/PackageCache/ ~ 에러 Library/PackageCache/ ~ 에러유니티에서 개발하다 보면 개발환경에 따라 SDK 업데이트에 따라 캐싱 데이터가 문제가 생긴다.그 과정에서 Libary/PackageCache/~ 에러가 발생하는데 그럴 경우에는 다음과 같이 진행하면 해결된다. Unity Menu -[Help]-[Reset Packages to defaults]를 누른다. 그러면 패키지를 다시 재시작하면서 PackageCache 를 다시 지우고 임포트 한다.그 과정에서 에러는 사라진다.  ★★☆☆☆ 2020. 10. 15.
Unity) 인스펙터 읽기 전용 만들기 (Attribute - ReadOnly Property) 인스펙터 읽기 전용 만들기 (Inspecator ReadOnly PropertyInspector ReadOnly Property)유니티 개발을 하다보면. Property를 노출하는 과정에서 변경이 안되어야 하는 상황이 생긴다.ReadOnly 속성으로 읽기만 가능하도록 변경을 해서 사용해야하는 경우에서 사용 가능하다. 기능은 심플하다. 노출은 되지만 수정이 불가능한 상태로 돼서 '변경되지 않도록' 값을 쓰지 못하게 만드는 것이다. 코드는 다음과 같다.PropertyDrawer을 이용한 GUI.enable을 사용한 방법이다.using UnityEngine;using UnityEditor;public class ReadOnlyAttribute : PropertyAttribute{}[CustomPropertyD.. 2020. 10. 15.
Unity)Firebase) Database 설정 및 읽고 쓰기 Firebase Database 설정 및 읽고 쓰기 Firebase에서 지원하는 많은 기능 중 Database를 사용하고자 한다. 간략하게 Firebase는 실시간 데이터베이스를 지원하는데 간단한 게임의 Database를 대신해서 사용하기에 꽤나 쓸만하다고 생각한다. Firebase를 이용해서 실제 서비스도 해봤는데, 무료로 쓰다가 패킷이 많으면 유료로 전환이 가능해서 처음 구축해서 쓰기에는 좋다. NoSql 기반으로 JSON 형태로 데이터를 읽고 쓸수 있다. Firebase 에서 Realtime Database를 선택한다. 여기에서 규칙을 설정해야한다. 규칙이라는 건 간단히 말하면 권한이다. 해당 경로에 접근할 수 있는 권한을 부여하는 항목이다. 기본적으로 모두 다 접근 가능한 형태로 작업을 진행한다... 2020. 9. 24.
Unity) Custom C# DLL 만들고 적용하기 Unity Custom C# DLL 만들고 적용하기 공통적인 코드들을 묶어서 dll을 만들어서 import 해서 사용할 예정이다. 기본적으로 dll로 묶으면 내부 코드를 볼 수 없기 때문에 수정을 바로 하기보다는 특정 주기로 묶어서 필요한 것들을 사용하는 과정에서 필요에 의해서 하는 게 좋다. IDE : Visual Studio 비주얼 스튜디오를 열어서 c#의 dll을 만들려는 과정에서 스탠더드로 설치가 돼서 c#의 항목에서는 항목이 없어서 업데이트를 진행했다. 기본적으로 Unity에 종속된 라이브러리를 만들려고 한다. 참고 : https://docs.unity3d.com/Manual/UsingDLL.html Unity - Manual: Managed plug-ins Managed plug-ins Man.. 2020. 9. 23.
Unity)해결)Copying assembly from 'Temp/Assembly-CSharp.dll' to 'Library/ScriptAssemblies/Assembly-CSharp.dll' failed Copying assembly from 'Temp/Assembly-CSharp.dll' to 'Library/ScriptAssemblies/Assembly-CSharp.dll' failed 프로젝트를 외부 저장소(Git, Svn 등등)에 받는 과정에서 한 번씩 위와 같은 오류가 발생한다. 원인은 컴파일러가 정상적으로 로드가 되지 못해서 에러가 나는 과정인데 여러 가지 방법이 있다. -Temp 파일 폴더를 삭제하고 프로젝트를 실행 -> 여부 확인 - [Assets]-[Reimport All] -> 여부 확인 - 유니티 프로젝트를 새로 만들고 script, resource 등을 카피해서 덮어쓰기. 컴파일을 처리하는 라이브러리가 정상적으로 연결되지 않아서 이런 이슈가 생기는 듯하다. ★★☆☆☆ 2020. 9. 18.
Unity) 조이스틱 구현하기(JoyStick) 조이스틱 구현하기(JoyStick) 유닛의 이동을 처리하기 위해서 작업하는 과정에서 조이스틱을 작업하기로 구성을 했다. 조이스틱은 실질적으로 방향에 대한 입력만 구분을 하고 실제로는 속력을 처리했다. 물리에 대한 고려를 처리하지 않기 위해서 (Velocity)를 처리하지 않고 SetPosition으로 처리를 했다. 핵심 코드를 이루고 있는 요소는 입력이다. IBeginDragHandler IDragHandler IEndDragHandler 에서 입력받은 순간 Vector2 inputDir = eventData.position - rectTransform.anchoredPosition; this.m_vMoveDir = inputDir.magnitude 2020. 9. 17.
Unity) PlayMode 시작 씬 설정 PlayMode 시작 씬 설정 Unity에서 여러 가지 씬을 작업하다 보면 PlayMode (재생 버튼)을 누르게 되면 해당 씬을 시작한다. 강제로 시작씬을 만들어서 플로우를 정상 처리할 수 있다. 필요한 경우는 (회원가입, 초기화등) 순서가 필요한 것이나 언제든지 다른 씬에서 플레이를 할 수 있도록 하는 방식이다. 코드는 다음과 같다. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void InitScene() { Logger.LogFormat("[SceneTitle] Init Scene --------------"); if (UnityEngine.SceneManagement.SceneManager.Ge.. 2020. 9. 9.
Unity)Firebase) Unity 연동하기 Firebase Unity 연동하기 Unity에서 Firebase를 연동해서 Auth 까지 진행하는 포스팅이다. Firebase 설명은 다음과 같다. 개발하는 과정에서 필요한 솔루션(지표, 푸쉬, 이벤트, 플랫폼 로그인, 스토리지, DB등)을 지원해주는 모바일 웹 어플리케이션 개발 플랫폼 이다. Firebase에서 로그인을 진행하고 프로젝트 만들기를 진행한다. 프로젝트이름 (파이어베이스 콘솔에서 확인할 이름) 여기서 Google 애널리틱스를 사용을 추천한다. 계정이 있으면 계정을 선택한다. 프로젝트 만들기를 진행하면 프로젝트가 생성된다. 이후의 가이드는 Firebase의 가이드를 참고한다. https://firebase.google.com/docs/auth/unity/start?hl=ko Unity에서 .. 2020. 9. 9.
Unity) IL2CPP란? IL2CPP란? 유니티에서 빌드를 할 때 IL2CPP라는 형식으로 난독화 하는 옵션이 있다. 유니티는 C#기반으로 CIL(MSIL)이라는 미들 코드를 만들어 낸다. 미들 코드를 가지고 원시 코드(네이티브 코드)로 변경하는 과정을 JIT Compiler가 수행을 한다. 중간 코드(CIL)에서는 실행 머신 환경에 관계없이 동일 코드를 실행할 수 있다. 공식 설명은 다음과 같다. URL :https://docs.unity3d.com/kr/2019.1/Manual/IL2CPP.html IL2CPP - Unity 매뉴얼 IL2CPP(C++로 변환하는 중간 언어)는 Unity에서 개발한 스크립팅 백엔드로, 여러 플랫폼용 프로젝트를 빌드할 때 Mono 대신 사용할 수 있습니다. IL2CPP를 사용하여 프로젝트를 빌드.. 2020. 9. 7.
Unity) Logger Class Logger Class 유니티에서 Debug.Log 를 쓰다보면 특정상황에서 로그를 모두 출력을 하지 않는다 던가. 특정상황에서 로그를 컨트롤해야하는 상황이 생긴다. 기본적으로 Logger에서 값을 찍는 과정에서 (테스트 및 확인등등)여러 용도로 확인하기 위해서 많이 사용하기 때문에 로그를 처리안하는것만 진행해도 효과를 보는 경우가 많다. 디버그 모드 > 상용 모드로 작업하는 과정은 필수라고 보면 된다. 기본 메커니즘은 전처리기능을 사용한다. [Player Setting] -[Other Settings] -[Scripting Define Symbols] - 'ENABLE_LOG'라고 설정하고 사용한다. /** * 생성일 : 2019년 12월 10일 PM 1시 23분 * 생성자 : - * [Project .. 2020. 9. 7.
Unity)해결) Copying assembly from 'Temp/com.unity.multiplayer-hlapi.Runtime.dll' t Copying assembly from 'Temp/com.unity.multiplayer-hlapi.Runtime.dll' to 'Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Runtime.dll'failed 해결 유니티 프로젝트를 실행하니 위와 같은 오류가 발생했다.프로젝트를 열면서 프로젝트의 Temp파일이 생기는데. 이 Temp파일에서 라이브러리를 인식하는 과정이 실패한 경우이다.이럴 때는 과감하게 [Assets]-[Reimport All]을 실행한다. 라이브러리 및 환경을 다시 세팅하는데 시간이 좀 걸린다. 다시 링크 깨진 것들이라던 지, 캐싱 등을 다시 프로젝트를 구성하는 과정에서 해결된다. ★★☆☆☆ 2020. 9. 6.
반응형