본문 바로가기
반응형

개발/Unity312

문제해결)Unity Project 문제 발생 시 초기화하기 Unity Project 문제 발생 시 초기화하기 대체적으로 버전이 변경되거나 버전이 변경되는 과정에서 생기는 프로젝트를 열게되면 오래 걸리는 경우가 종종 생긴다. 혹은 에러가 발생하는 경우도 포함이다. 그러는 경우에는 Unity Project의 설정 파일들을 제거하고 다시 생성하는게 더 효율적인 경우가 종종 생긴다. Unity Project 를 종료하고 난 이후에 프로젝트 폴더에서 삭제하는 폴더는 다음과 같다. Library, Log, obj, UserSetting 폴더는 새로 생성되기 때문에 삭제해도 된다. 기본적으로 Unity Project를 구성하는건 Assets, Packages, ProjectSettings 해당 폴더들이다. 나머지는 환경에 따라 추가로 구성된다. Unity Asset Data.. 2023. 7. 15.
Unity) Import Activity (Asset Import 정보 확인) Import Activity Unity 에서 Asset을 Import 하는 과정에서 일어나는 정보들을 제공해주는 Window 으로 여러가지 정보들을 확인할 수 있다. 작업을 하는 과정에서 가장 많이보는게 Import Time 일 것이다. 어떤게 가장 느리게 로드가 됬는지 알게되면 해당 Asset이 왜 느린지를 알수 있다. Analysis -> Import Activity> Import Window 메뉴를 누르게되면 현재 상태를 기준으로 해당 정보들을 확인이 가능하다. 분석을 하고자하는 Asset을 선택해서 마우스 오른쪽 -> View in Import Activity Window 메뉴를 통하게되면 바로 해당 에셋을 선택해서 표현된다. 추가적인 정보들을 확인할수 있는 방법은 다음과 같다. 여러가지 정보를 .. 2023. 7. 13.
Unity) Camera Layer Cull Distance Camera Layer Cull Distance 간단하게 말하면 카메라의 거리에 따라 특정 요소를 그리거나 안그리게 처리하는 최적화 기법이다. Unity 에서는 Layer 단위로 처리를 한다. 기본적으로 디테일 한 표현을 하는 중요하지 않는 오브젝트에 사용한다.(장식이나 배경같은 지형물) using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void Start() { Camera camera = GetComponent(); float[] distances = new float[32]; distances[10] = 15; camera.layerCullDistances = distance.. 2023. 7. 12.
Unity) Localization String Event Hierarchy (Custom Hierarchy) Localization String Event Hierarchy Localization String Event 에 있는 Key 와 해당 Text를 노출하는 것을 테스트 했다. 다국어에 대한 처리를 하는 과정에서 매번 해당 값이 셋팅 됬는지 확인하기 굉장히 어렵기 때문이다. 그래서 바로 Key와 Text를 확인할수 있도록 EditorApplication.hierarchyWindowItemOnGUI 를 통해서 노출되도록 처리했다. 영어와 한글로만 테스트했다. Localization Scene Controls Hierarchy //key var localizeStringEvent = (obj as GameObject).GetComponent(); if (localizeStringEvent == null) re.. 2023. 7. 11.
문제해결)Unity) Missing Default Layer - No valid user created or default window layout found, Please revert factory settings to restore the default layouts. Missing Default Layer - No valid user created or default window layout found, Please revert factory settings to restore the default layouts. Missing Default Layer - No valid user created or default window layout found, Please revert factory settings to restore the default layouts. Unity Editor의 Default Layout을 찾지 못하는 경우에 발생하는 에러로 공장초기화를 한다는 메시지이다. 설치시 기본적으로 생성되는 레이아웃 정보는 다음의 경로에 존재한다. C:\.. 2023. 7. 6.
Unity)Unity Engine Scene View Grid 표시 (가이드 라인) Unity Engine Scene View Grid 표시 (가이드 라인) Unity 를 개발하다가 보면 Grid Line이 있으면 좋겠다고 생각해서 찾아서 알게된 정보를 포스팅한다. Scene 화면에 Grid가 노출이 가능하다. 기준점 등등 가능하다. 그리그 기능 단축키 그리드 크기 증가 Ctrl+](Windows) 또는Command+](macOS) 그리드 크기 감소 Ctrl+[(Windows) 또는Command+[(macOS) 그리드를 뒤로 살짝 밀기 Shift+[ 그리드를 앞으로 살짝 밀기 Shift+] 그리드로 밀기(선택 항목을 그리드에 정렬) Ctrl+\(Windows) 또는 Command+\(macOS) 그리드 초기화 (기본 단축키 없음) 추가로 Gird의 컬러 지정하는 .. 2023. 6. 16.
문제해결)Unity)[LicensingClient] Error: Code 500 while updating license in client (status: Unable to update licenses. Errors: No ULF license found.,Token not found in cache) [LicensingClient] Error: Code 500 while updating license in client (status: Unable to update licenses. Errors: No ULF license found.,Token not found in cache) BatchMode로 빌드하는 과정에서 해당 라이선스가 없어져서 발생하는 이슈로 간단하게 유니티 허브를 통해서 라이선스를 등록을 다시 해주면 된다. 플러스/프로/기업 라이선스 사용자는 ‘ Unity Plus or Pro ’를 선택하여 라이선스 키를 입력하세요. [LicensingClient] Error: Code 500 while updating license in client (status: Unable to update l.. 2023. 6. 13.
Unity) Script Change Icon(코드로 Icon 변경) Script Change Icon(코드로 Icon 변경) PlayerSetting 의 Icon을 교체해주는 방식으로 사용하는 Unity Version에 따라 다르니 공식문서를 참고하는걸 추천드린다. using UnityEditor.Android; using UnityEditor; using UnityEngine; public static class AndroidPlayerSettingsUtility { // `Adaptive` icons for Android require a background and foreground layer for each icon public static void SetIcons(Texture2D[][] textures) { BuildTargetGroup platform = B.. 2023. 6. 8.
Unity)Animation Curve(애니메이션 커브) Animation Curve(애니메이션 커브) Unity에서 제공하는 Animation Curve로 float 형태의 곡선 값을 Time에 따라 값을 받을수있다. 수치값을 조금더 다양하게 주고 싶을때 주로 사용한다. 시각적으로 표현이 되다 보니 꽤나 유용한 기능이다. 사용방법에 대한 예시 코드는 다음과 같다. [SerializeField] private AnimationCurve scrollTimeCurve = default; private void Update() { if (State != UIState.MoveScrolling) return; scrollTime += Time.deltaTime; if (scrollTime >= scrollTimeCurve.keys[scrollTimeCurve.leng.. 2023. 5. 22.
Unity Tip) 프로젝트, 하이어라키에서 쉽게 찾기 (Search Filter) 프로젝트, 하이어라키에서 쉽게 찾기 (Search Filter) Unity Editor에서 굉장히 많은 리소스에서 특정 리소스를 찾아야하는 경우에 유용한 팁이다. 간단하게 필요한 타입이나 이름을 통해서 구분할수 있다. 사용방법은 다음과 같다. Filter Search Token 설명 Type t: t: texture card => 이름이 card~로 시작하는 texture 검색 t: scriptableObject temp => 이름이 temp~로 시작하는 scriptableObject 검색 t: prefab name => 이름이 name~인 Prefab 검색 t:Sprite apple => 이름이 apple~인 Sprite 검색 t:Scene main => 이름이 main~인 Scene 검색 Folder.. 2023. 5. 16.
Unity)Editor - Project Current Directory Info(Project 현재 경로) Project Current Directory Info(Project 현재 경로) 프로젝트 브라우저 현재 디렉토리 내부 통합 정적 함수 내부에 숨겨져 ProjectWindowUtil.TryGetActiveFolderPath있으며 액 세스하려면 Reflection 이 필요하다. using UnityEngine; using UnityEditor; using System.Reflection; // Define this function somewhere in your editor class to make a shortcut to said hidden function private static bool TryGetActiveFolderPath( out string path ) { var _tryGetActiveF.. 2023. 5. 12.
Unity) Texture2D Resize Code (텍스쳐2D 사이즈 변경) Texture2D Resize Code (텍스쳐2D 사이즈 변경) Texture 2D의 Size를 다시 처리하는 코드이다. 해당 코드는 원본 (source) 을 기준으로 새로운 Texture2D를 생성해서 사이즈를 변경한다. private Texture2D ResizeTexture(Texture2D source, int newWidth, int newHeight) { RenderTexture rt = new RenderTexture(newWidth, newHeight, 0); Graphics.Blit(source, rt); Texture2D newTexture = new Texture2D(newWidth, newHeight); newTexture.ReadPixels(new Rect(0, 0, newWid.. 2023. 5. 10.
Unity) PlayerPrefs 저장 경로 PlayerPrefs 저장 경로 Unity에서 PlayerPrefs를 사용하다보면 해당 값이 저장되는 곳이 궁금해서 알게되어서 포스팅한다. 저장되는 경로는 환경마다 다르다. 윈도우를 기준으로 보면 대략 다음과 같다. Unity PlayerPrefs : [링크] Unity - Scripting API: PlayerPrefs Unity stores PlayerPrefs in a local registry, without encryption. Do not use PlayerPrefs data to store sensitive data. Unity stores PlayerPrefs data differently based on which operating system the application runs on... 2023. 5. 9.
Unity) 모바일 딥 링크 설정 - Mobile Deep Link(Android, iOS, UWP) 모바일 딥 링크 설정 - Mobile Deep Link(Android, iOS, UWP) 본질적으로 딥 링크를 사용하면 단일 링크를 통해 애플리케이션을 실행하고 매개변수를 전달할 수 있다. 그런 다음 웹 페이지나 SMS 문자 메시지와 같은 다양한 소스에서 애플리케이션의 특정 영역으로 사용자를 웹 페이지로 이동 시킬수 있다. 이 시나리오에서 딥 링크를 처리하려면 다음을 수행할 수 있습니다. 시작하기 위해 Unity는 애플리케이션이 딥 링크 URL에서 활성화될 때 Application.deepLinkActivated 이벤트를 호출합니다. 애플리케이션이 시작될 때 Application.absoluteURL을 확인하십시오 . 애플리케이션이 실행되는 동안 Application.deepLinkActivated 이벤.. 2023. 5. 4.
Unity)Unity 내장 DLL 경로 Unity 내장 DLL 경로 Unity에서 기본적으로 정의된 항목도 DLL이 포함되어있는 경로를 기록하기 위한 포스팅이다. Unity 의 버전에 따라 경로가 다를수도 있다는 것을 참고해서 찾으면 된다. 관리되는 플러그인을 생성하려면 적절한 컴파일러가 필요한 DLL을 생성해야 합니다. . NET 코드를 생성하는 모든 컴파일러가 Unity에서 작동한다고 보장되지 않으므로, 큰 작업을 수행하기 전에 사용 가능한 코드로 컴파일러를 테스트해야 합니다. DLL에 Unity API에 종속된 코드가 포함되어 있지 않으면 적절한 컴파일러 옵션을 사용하여 .dll 파일로 컴파일할 수 있습니다. Unity API를 사용하려면 Unity의 자체 DLL을 컴파일러에서 사용할 수 있어야 합니다. macOS에서 DLL은 애플리케이.. 2023. 5. 3.
반응형