본문 바로가기
반응형

개발/Unity354

Unity) Audio / Sound 사운드 -최적화 및 설정 Audio / Sound 최적화 및 설정 Unity에서 Audio 설정과 옵션에 대해서 테스트하면서 해당 최적화에 대한 고민을 진행했고 그 결과에 대한 포스팅이다. Unity에서는 전체적인 Project Setting - Audio 옵션과 / 각 개별의 Audio Clip에서의 설정 2가지 설정이 가능하다. Project Setting Audio Global Volume 전체적인 볼륨 Vloume Rolloff Scale 로그 롤 오프 기반의 소스에 대한 전역 감쇠 설정 Doppler Factor 도플러 효과에 대한 설정 처리 Default Speaker Mode 기본 스피커 모드(Mono/ Stereo/ Quad / Surrond / Mode5point1/ Mode7Point1 / Prologic) S.. 2021. 5. 10.
Unity) URP(Universal Render Pipeline) 셰이더 사용하는 방법 URP 셰이더 사용하는 방법 Unity에서 URP 셰이더를 사용하는 방법은 다음과 같다. 사용할 프로젝트의 Package Manager에서 Universal RP를 Install 한다. Asset - Create - Rendering - Universal Render Pipeline - Pipeline Asset 생성된 UniversalRenderPipelineAsset_Renderer를 [Project Setting] -[Graphics] Scriptable Render Pipeline Settings에 포함시키면 된다. URP 셰이더를 사용하려면 프로젝트의 Universal RP를 선택해서 만들면 된다. Unity Blog 참고 : [URP-경량 렌더 파이프라인의 진화] How the Lightwei.. 2021. 4. 30.
Unity)점진적 가비지 컬렉션 (User Incremental GC) 점진적 가비지 컬렉션 (User Incremental GC) 2019.1a 10 이상에서 사용 가능하다고 한다. 기본적으로 c#은 자동 메모리를 관리를 GC(Garbage Collection)가 자동으로 일어나고 프로그래머에게 비가시적으로 일어난다. Unity는 기본적으로 Boehm-Demers-Weiser 가비지 컬렉터를 사용하는데 이는 Stop-the World 방식으로 처리된다고 한다. 이 방식은 가비지 컬렉터가 임의의 순간에 처리가 되게 되면 프레임 드랍 현상이 일어난다. 이러한 방법을 해결하기 위한 방법으로 점진적 GC 방식이라고 한다. Project Setting - Player - User incremental GC라는것을 체크하면 점진적 GC를 처리한다고 한다. 유니티 블로그에 결과를 참고.. 2021. 4. 26.
Unity)어드레서블(Addressables) 어드레서블(Addressables) 어드레 서블(Addressables)은 예전의 에셋번들(AssetBundle)을 대체하는 에셋 관리 시스템으로 리소스들의 주소(위치)를 지정해서 고유하게 로드 및 방식을 분리가 가능하다. 추가로 런타임 메모리 관리도 좀 더 편리하게 된다고 한다. [Window]-[Assets Management]-[Addressables] 메뉴를 선택하면 어드레서블 메뉴가 노출된다. 어드레서블을 체크하고 이름(ball)을 지정이 가능하다. 어드레서블 지원은 Unity 2018 LTS~ 이상부터 지원을 한다고 한다. 어드레서블을 로드해서 처리되는 코드는 대략 다음과 같다. void OnButtonClick() { if(string.IsNullOrEmpty(addressToAdd)) De.. 2021. 4. 15.
Unity)해결)VisualStudio)CS0246 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. CS0246 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. 위의 에러는 기본적으로 Class가 선언이 되어 있지 않거나 using으로 임포트가 되지 않아서 발생하는 에러이다. 분명히 존재하는 Class 나 using문을 선언을 했는데도 위와 같은 에러가 나는 경우가 종종 있다. 이럴 경우에는 컴파일하는 과정에서 순서가 잘못된 경우로 Unity 프로젝트를 종료 후 해당 프로젝트의. csproj 파일과. sln 파일을 삭제하고 다시 Unity 프로젝트를 실행 하면 자동으로 생성되는 파일(Visual Studio 프로젝트에는 프로젝트 형식—(예: C# 프로젝트 (.csproj))이다. 해당 파일들은 c# 프로젝트의 구조를 명시하는 Unity 프로젝.. 2021. 4. 12.
Unity) InGame Debug Console Plugin 적용 InGame Debug Console Plugin 적용 게임을 개발하다보면 Editor가 아닌 환경 실행빌드에서 문제가 터지는 경우가 종종 존재하게된다. 이럴 경우에 유용하게 사용될수 있는 Plugin 을 찾던도중 Free로 되어 있는 'InGame Debug Console' 이라는 플러그인을 찾아서 적용한 포스팅이다. 간단하게 테스트해봤는데 정상적으로 잘나오는 것을 확인했다. 나중에 플랫폼 빌드에서도 확인이 가능한 상황이어서 유용하게 잘 쓰일수 있다. Unity Assets Store : [링크] In-game Debug Console | GUI 도구 | Unity Asset Store Use the In-game Debug Console from yasirkula on your next project.. 2021. 4. 10.
Unity) Android Permission 안드로이드 권한 설정 Android Permission 안드로이드 권한 설정 안드로이드 권한에 대한 설정을 해야 할 일이 생겨서 적용하고 포스팅하게 되었다. 권한 요청에 대한 프로세스 테스트는 다음과 같다. 권한 설정 전 앱 실행 이후의 권한 요청 권한 설정 후 using UnityEngine; # if UNITY_ANDROID using UnityEngine.Android; # endif public class MicrophoneTest : MonoBehaviour { GameObject dialog = null; void Start () { #if UNITY_ANDROID if (!Permission.HasUserAuthorizedPermission(Permission.Microphone)) { Permission.Req.. 2021. 4. 7.
문제해결)Unity) APK 열기 비활성화 및 앱 노출 안 되는 현상 APK 열기 비활성화 및 앱 노출 안 되는 현상 이런 경우에는 Android Manifest 의 설정이 잘못된 경우에 발생한다. Android에는 필수 설정 파일인데 activty 태그의 설정이 잘못된 경우에 발생했다. 기본값은 다음과 같다. ★☆☆☆☆ 2021. 4. 6.
Unity) Object Pool <T>Pattern Object Pool Pattern Unity Docs에서 지원하고 있는 Object Pool Pettern을 찾게 되어서 간략하게 포스팅 한다. namespace DesignPattern.Objectpool { // The PooledObject class is the type that is expensive or slow to instantiate, // or that has limited availability, so is to be held in the object pool. public class PooledObject { private DateTime _createdAt = DateTime.Now; public DateTime CreatedAt { get { return _createdAt; .. 2021. 4. 5.
Unity) Shader Graph #2 캐릭터 스폰 효과 구현 Shader Graph #2 캐릭터 스폰 효과 구현 유니티 튜토리얼로 셰이더에 대한 효과가 있어서 이렇게 포스팅하게 되었다. Unity Tutorial (Shader Graph #2) : [ 링크 ] 결과는 다음과 같다. 스폰의 느낌이 나도록 픽셀 셰이더 부분에 대한 설정값을 추가해서 Y을 기준으로 처리되도록 셰이더 코드를 추가하고 컬러 값과 영역을 계산해서 ITween을 이용해서 스폰되고 셰이더 값을 처리했다. 디 졸프는 기존에 노이즈 텍스쳐를 추가해서 처리가 되었다. 튜토리얼로 따라 하면서 유니티에서 셰이더 그래프를 만드는 기초를 알 수 있어서 좋았고, 누구든지 금방 따라 할 수 있는 정도여서 매우 좋았다. ★★★★☆ 2021. 4. 5.
Unity) 2D Tile Map 만들기 2D Tile Map 만들기 유니티 2D Tile Map 관련된 포스팅이다. 기본적으로 2D로 프로젝트를 만들어주고 [GameObject]-[2D Object] - [ Tilemap ]을 설정하게 되면 Tile Map Grid가 Hierarchy에 생기게 된다. Unity Title Map : [링크] 타일맵 - Unity 매뉴얼 Tilemap 컴포넌트는 2D 레벨을 생성하기 위해 타일 에셋을 저장하고 처리하는 시스템으로, 타일에 배치된 필수 정보를 Tilemap Renderer와 Tilemap Collider 2D와 같은 기타 관련 컴포넌트로 전송합니다. docs.unity3d.com ※스프라이트는 Multiple 모드로 변경하고 Pixels Per Unit 사이즈는 해당 타일 맵의 사이즈로 조절하면 .. 2021. 4. 3.
Unity) Bool 값 인스펙터에서 변경 시 이벤트 처리하기 Bool 값 인스펙터에서 변경 시 이벤트 처리하기 원하는 기능은 인스펙터에 있는 값을 변경할 때 아래와 같은 형태로 처리를 하려고 여러 가지 삽질을 해봤으나. 실패했다. public bool _flag = false; public bool flag{ get{ return _flag; } set{ _flag = value; eventAction(); } } Wrapper Class로 만들어서 셋팅하기도 해 보고 여러 가지 처리를 해봤으나 결국 돌고 돌아서 CustomEditor로 하게 되었다. 관련된 내용 코드는 다음과 같다. using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif public class ExampleScript : MonoBehavi.. 2021. 3. 24.
Mac)해결)Unity)Error building Player: Win32Exception: Application Name ='~/AndroidPlayer/SDK/tools/bin/sdkmanager' Error building Player: Win32Exception: Application Name ='~/AndroidPlayer/SDK/tools/bin/sdkmanager' 이런 에러가 나기 시작했다. 환경은 Mac 에서 Android Build를 진행하는 과정에서 빌드가 실패가 되고 실제 빌드도 안 되는 상황이다. 단순하게 Access denied 를 보고 권한이 없구나로 생각을 해서 권한 명령어인 chown을 사용해서 해당 권한을 받고 처리를 해보려고 했으나 실패. 디버깅에 찍힌 로그는 다음과 같았다. Win32Exception: ApplicationName='/Applications/Unity/2019.4.7f1/PlaybackEngines/AndroidPlayer/SDK/tools/bin/s.. 2021. 3. 23.
Unity)2D 개발 꿀 팁 (Unity 공식) 2D 개발 꿀 팁 (Unity 공식) Unity Korea의 영상중 2D 개발 꿀팁이라는 항목으로 영상이 업로드돼서 정리한 포스팅이다. 2D 템플릿으로 2D 프로젝트 시작하기 스프라이트의 단위당 픽셀 선택 2D PSD Importer 픽셀 오버드로우 줄이기 콜라이더 합치기 2D로 개발할때 템플릿을 선택하게 되면 3D 관련된 요소들이 포함되어 있지 않고 좀 더 가볍게 개발이 가능하다 내부에 포함된 내용으로는 다음과 같다. 2D animation, 2D pixel Perfect, 2D PSD Importer, 2D SrptieShape 등이 포함되어있다. 2D를 개발하는 과정에서 Pixcels Per Unity 를 선택할 수 있다고 한다. 개발하는 과정에서 크기를 지정해서 하게되면 비율도 일정하게 되고 개발.. 2021. 3. 22.
Unity) JsonUtility class Parsing Problem JsonUtility class Parsing Problem Unity에서 내장으로 JSON을 파싱 해주는 JsonUtility를 사용하다 보면 serialize/ deserialize 를 사용해서 JSON 형태로 변경이 가능하다. List 형태로 변환하는 과정에서 데이터 변경이 안 되는 문제가 있는데 이때 해당 클래스도 [System.Serializable]으로 변경해야 된다. public class ParsingClass { public List list; } [System.Serializable] public class ParsingInfo{ public string name; } Unity Doc : [링크] Unity - Scripting API: JsonUtility.ToJson Interna.. 2021. 3. 18.
반응형