본문 바로가기
반응형

개발/Unity361

문제해결)Unity Package Manager Error Unity Package Manager Error Unity Package Manager Error가 나서 Editor가 열리지 않고 다음과 같이 알람 팝업이 노출되어있다. 프로젝트 경로의 packages-lock.json 파일 삭제하고 다시 Pacakge Manager가 갱신될수 있는 상태에서 다시 프로젝트를 열면 Unity Pacakge Manager에 있는 정보로 갱신되면서 package의 저장 시점(lock)에 대한 hash Key가 갱신된다. ★☆☆☆☆ 2023. 10. 25.
문제해결) Atlas source cannot be null! Atlas source cannot be null! Unity CLI 빌드로 진행하는 과정에서 발생한 에러이다. 간략하게 보면 Spine 데이터를 읽을때 버전이 달라지면서 Atlas 데이터를 못찾으면서 발생하는 에러이다. 간단하게 해결방법은 다음과 같다. [2023-10-05T11:14:42.211Z] (Filename: ./Library/PackageCache/com.esotericsoftware.spine.spine-unity@661796d2cb/Editor/spine-unity/Editor/Utility/AssetUtility.cs Line: 598) [2023-10-05T11:14:42.211Z] [2023-10-05T11:14:42.211Z] Atlas source cannot be null! .. 2023. 10. 23.
Unity)DLL (Dynamic Link Library)-> UPM(UnityPackageManager) 배포 DLL (Dynamic Link Library)-> UPM(UnityPackageManager) 배포 DLL으로 생성해서 UPM으로 배포하는 경우에는 asmdef 가 필요 없음(DLL)으로 이미 묶여있기 때문이다. C:\Program Files\Unity\Hub\Editor\2021.3.12f1\Editor\Data\Managed\UnityEngine C:\WORKSPACE\SHC\UPM\Library\ScriptAssemblies\UnityEditor.UI.dll .. DLL으로 이미 컴파일되어서 따로 컴파일이 필요없다. 버전별로 관리 가능하다. 메모리가 공용이다. 코드가 통합되어서 들어간다. private static readonly st.. 2023. 10. 17.
Unity)Sprite Library Editor (스프라이트 라이브러리 에디터) Sprite Library Editor (스프라이트 라이브러리 에디터) Unity에서 Sprite 를 교체 할때 유용하게 사용이 가능한 2D Animation 패키지가 업데이트 되어서 간략하게 포스팅한다. 기존에는 코드로 하나씩 변경하는 처리를 했었다.(ScriptableObject 를 활용해서 Skin Sprite 를 교체하는 형태) 최근에 업데이트된 2D Animation 쪽에서 이것저것 기능들을 추가로 업데이트 해줘서 더욱 더 편리하게 변경이 가능한것 같다. Sprite를 한번에 교체가 가능한 형태로 저장이 가능하다. Color SpriteLib -> Gray SpriteLib 로 변환한 케이스이다. 해당 메뉴얼에 있는 여러가지 메뉴얼을 참고해서 애니.. 2023. 10. 16.
Unity) ClipBoard (클립보드 : 복사 붙여 넣기 Copy & Paste) ClipBoard (클립보드 : 복사 붙여 넣기 Copy & Paste) Unity 에서 클립보드(복사 붙여넣기) 기능이 필요해서 찾은것을 간단하게 포스팅한다. 간단하게 복사 붙여넣기 기능을 사용할수 있다. 예전에는 Native로 각자 구현을 했는데. 지금은 편리해졌다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestCode : MonoBehaviour { private string ClipBoardName = "복사할 내용"; public void OnButtonClick() { CopyToClipBoard(ClipBoardName); } public static void Cop.. 2023. 10. 15.
Unity) Unity Documentation (Unity 문서) Unity Documentation (Unity 문서) Unity 공식 문서 링크이다. 최신 기술이라던지 버전에 맞는 API를 찾으려면 필수로 확인해야하는 문서이기 때문에 즐겨찾기해두면 좋다. 공식 사이트라서 연결된 서비스들이 최신문서로 갱신이 자주되어서 서 틈틈히 확인하는게 좋다. 최신 적용되는 기술이나 변경된 항목등을 미리 알수 있다. Unity Documentation : [링크] Unity Documentation Docs and guides to work with the Unity ecosystem. docs.unity.com ★☆☆☆☆ 2023. 10. 12.
Unity Sample) Optimizing Scroll List (최적화 스크롤 리스트) Optimizing Scroll List Unity 문서를 보다가 찾은 링크로 Unity 엔지니어가 제공하는 재사용 List GitHub Project 프로젝트이다. 많은 리소스를 소요하는 List / Grid 는 수백 개의 항목이 존재하지만 한번에 소수의 항목만 표시되는 경우 많은 리소스가 소요될 수 있어서 모든 항목에 대한 UI 요소를 만들지 않도록 하고 재사용 패턴을 적용해서 한쪽에서는 항목을 가져오고 동시에 다른 항목을 이동하는 방식을 사용하는것을 권장한다. Unity Engineer 제공하는 샘플 프로젝트로 50개의 Item을 기반으로 재사용하는 방식이다. GitHub 주소 : [링크] GitHub - boonyifei/ScrollList: Optimizing the scroll list Opt.. 2023. 10. 10.
Unity) 카메라 스테이킹(Camera Stacking) 카메라 스테이킹(Camera Stacking) 카메라 스테이킹이라는 기술은 단일 카메라가 아닌 여러 카메라를 사용해서 렌더링 이미지를 만들고 해당 렌더링 이미지를 순차적으로 겹쳐서 표현하는 방식을 말한다. Unity 카메라 컴포넌트는 렌더링에 필요한 것보다 많이 사용하지 않도록 해야하는데. 예를 들어, 여러 카메라를 사용하여 UI 레이어를 구성하게되면 모든 카메라 컴포넌트는 실제로 유용하게 사용되지 않더라도 오버헤드를 유발합니다. 고사양 타겟 플랫폼에서는 무시할 수 있는 수준이지만, 저사양 또는 모바일 플랫폼에서는 각각 최대1ms의 CPU 처리 시간이 소요될 수 있다고 한다. 카메라는 렌더링 이미지를 여러가지 연산을 통해서 그려지는데 3가지 프로세스가 이뤄진다고 한다. 1. 레이어 컬링 ( 레이어 제외 .. 2023. 10. 10.
Unity)Unity Editor (Pro 구분 코드) Unity Editor (Skin 구분 / Pro 구분 코드) Unity Editor 에 기능을 추가하다가 찾은 코드이다. 라이선스가 `Pro`를 구분하는 코드와 ProSkin을 구분하는 코드이다. var IsPro = UnityEditor.EditorGUIUtility.GetBuiltinSkin(UnityEditor.EditorSkin.Inspector); return UnityEditorInternal.InternalEditorUtility.HasPro() ? PlayerSettings.advancedLicense UnityEditor.EditorGUIUtility.isProSkin ProSkin은 Dark Mode 를 구분하는 코드이다. 기존에는 실제 라이선스에 따라 Editor Theme('Dar.. 2023. 10. 2.
Unity) 에디터 커스텀 프로그레스바 (Editor Custom GUI Progress bar) 에디터 커스텀 프로그레스바 (Editor Custom GUI Progress bar) Unity 에서 Progress bar를 커스텀해서 처리가 가능한 Editor Window 예시이다.   using UnityEngine;using System.Collections;using UnityEditor;// Draw the armor and damage with bars in an Editor Windowpublic class EditorGUIProgressBar : EditorWindow{ float armor = 20; float damage = 80; [MenuItem("Examples/Display Info")] static void Init() { Edito.. 2023. 10. 2.
Unity)Scene - OverDraw Scene - OverDraw Unity Engine에서 Scene 영역에 Oer Draw라는 메뉴가 있어서 간략하게 포스팅 하고자 한다. Scene 의 Draw Mode 를 선택하는 툴을 선택하면 메뉴가 나온다. 게임 오브젝트를 투명한 “실루엣”으로 렌더링한다. 컬러가 중첩되면 한 오브젝트 위에 다른 오브젝트가 그려진 곳을 쉽게 포착할 수 있다. 렌더링 과정(Culling - Rendering - Post-Processing)에서 Culling 부분에 해당되는 영역을 확인할 수 있다. 해당 영역이 많이 겹치는 부분에 대해서는 렌더링 과정에서 연산이 생긴다는 것을 인지하고 작업하자. (그려지지 않는 겹치는 영역이 많을 필요는 없다.) 최적화를 할때 OverDraw도 확인해보면 좋다. Unity Scene.. 2023. 8. 28.
문제해결)The AnimationClip '팝업이름' used by the Animation component '프리팹' must be marked as Legacy.UnityEngine.Animation The AnimationClip '팝업이름' used by the Animation component '프리팹' must be marked as Legacy.UnityEngine.Animation The AnimationClip 'popup_open' used by the Animation component '프리팹' must be marked as Legacy.UnityEngine.Animation/Enumerator:MoveNext ()Utill:GetAnimationClipName (UnityEngine.Animation) (at Assets/Resources/Script/Base/Utill.cs:396) Animation을 추가하는 과정에서 발생한 Warning으로 Animation의 Clip에서.. 2023. 8. 16.
Unity) Input System (from : Unity Technologies) Input System (from : Unity Technologies) Unity 버전 2019.1 이상 버전에서 사용이 가능하다. 기존의 Input과 다르게 좀더 간편해 졌다고 해서 이번에 사용하게 되었다. Unity Blog 설명으로는 다음과 같다. '기존의 입력 시스템이 사용자 친화적이지 않으며 때로는 파일을 실행한 후 컨트롤러를 연결을 처리하는 것도 원할하지 않다는 것을 알게 되어서 완전히 새로 구축하게 되었다.` Package Manager에서 Input System을 설치한다. 새로운 입력 시스템을 사용하려면 설정을 변경해야 한다. Project Setting -> Player-> Active Input Handling 값을 변경해줘야 한다. 여러가지 방법으로 Input System을 처리할.. 2023. 8. 16.
Unity) TMP(TextMeshPro) - SubMeshUI 생기는 이슈 TMP(TextMeshPro) - SubMeshUI 생기는 이슈 TMP를 작업하다가 보면 한번씩 내가 추가하지 않은 Component (SubMeshUI)가 생기는 경우가 종종 생긴다. 원인은 간단하게 Font에서 찾을수 없는 경우에 자동으로 생성된다. 정상적인 상황에서는 발생하지 않는다. 폰트에 해당 문자가 포함되지 않아서 발생하는 경우로 해당 경우는 수정을 하는게 좋다. 그게 아니면 추가로 메테리얼을 자동으로 생성해서 만들기 때문에 그만큼의 불필요한 리소스를 사용하게 된다. 1.폰트에 해당 텍스트를 포함해서 해결한다. 2. 해당 텍스트 폰트가 포함되어있는 다른 텍스트로 치환(변경)한다. 폰트 파일에 해당 글자가 포함되어있는지 확인하는 방법은 다음과 같다. 폰트 에셋(TMP_Font Asset)을 선택.. 2023. 8. 8.
Unity) Unity Editor Project 프로젝트 특정 포맷 가져오기(Project Asset 에서 Prefab,Scene 가져오기) Unity Editor Project 프로젝트 특정 포맷 가져오기(Project Asset 에서 Prefab,Scene 가져오기) Unity Project에서 사용하는 Asset 중 Prefab, Scene 등, 특정 포맷을 기준으로 Asset을 가져오는 코드이다. string[] checkAssetEndName = { ".prefab", //(Prefab) ".unity" //(Scene) }; var assetAllPath = AssetDatabase.GetAllAssetPaths(); foreach (var assetType in checkAssetEndName) { foreach (string path in assetAllPath.Where(s => s.EndsWith(assetType, Stri.. 2023. 8. 6.
반응형