본문 바로가기
반응형

개발/Unity312

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) 에디터 커스텀 프로그레스바 (EditorGUI Progress bar) EditorGUI Progress bar Unity 에서 Progress bar를 커스텀해서 처리가 가능한 Editor Window 예시이다. using UnityEngine; using System.Collections; using UnityEditor; // Draw the armor and damage with bars in an Editor Window public class EditorGUIProgressBar : EditorWindow { float armor = 20; float damage = 80; [MenuItem("Examples/Display Info")] static void Init() { EditorWindow window = GetWindow(typeof(EditorGUIPr.. 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.
Unity) Crash Report 보호되어 있는 글 입니다. 2023. 7. 24.
Unity) TextMeshPro Rich Text Tag 정리(Color, Size, Mark, Sprite...etc : 문자 효과) TextMeshPro Text -Tag 정리(Color, Size, Mark, Sprite...etc) Tag로 여러가지 효과를 표현할수 있다. 그중에서 가장 많이 사용하는 Text Tag를 간단히 정리한다. Right Center Left The quick brown fox jumps over the lazy doy Red Dark Green Blue Semitransparent Red Echo Echo Echo Echo Echo Would you like a different font? or just a different material? Spacing is j.. 2023. 7. 22.
Unity) Unity Package 모두 업데이트(Package All Update) Unity Package 모두 업데이트(Package All Update) Unity Editor Coroutine을 사용해서 포함된 패키지를 모두 다 업데이트하는 코드이다. using System; using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEditor.PackageManager; using UnityEngine; using Unity.EditorCoroutines.Editor; static class PackagesUtill { [MenuItem("Packages/Update All Packages")] private static void UpdateAllPackages() { Edi.. 2023. 7. 16.
Unity) LOD(Level Of Detail) 와 MinMap의 차이 LOD(Level Of Detail) 와 MinMap의 차이 MinMap은 2의 배수로 텍스처를 따로 사용해서 여러가지 텍스처를 셋팅해서 거리에 따라 사용하는 텍스처를 변경해서 리소스적으로 최적화를 하는것을 말한다. LOD(Level Of Detail)은 거리에 따라 사용하는 Polygon 수를 조절하는 방식으로 이뤄진다. CPU의 연산을 줄여서 폴리곤이 줄어들면 디테일이 줄어들고 뭉게져서 보여지긴하지만 그만큼 최적화가 된다. Minmap은 개별적으로 리소스를 설정해서 거리에따라 텍스쳐의 품질을 줄이는 것을 말하고 LOD는 리해 게임 오브젝트는 지오메트리에 디테일 수준이 감소하는 LOD 레벨이 카메라 거리에 따라 폴리곤의 갯수를 변경하면서 CPU 최적화를 하는 것을 말한다. 둘다 최적화를 하기 위한 방법.. 2023. 7. 16.
반응형