반응형 개발878 개발용어)라이브 프로젝트에 대한 리텐션 정보 정리 보호되어 있는 글 입니다. 2023. 10. 10. 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. VisualStudio)Json Schema (JSON 스키마) Json Schema (JSON 스키마) JSON Schema에 대해서 간략하게 정리한다. JSON 스키마(Schema)란 JSON의 형식이 맞는지 유효성을 검사를 하기 위한 선언적 언어로 JSON 스키마를 사용하면 JSON 형식을 확실하고 안정적으로 사용이 가능하다고 한다. 기본적으로 만들어져있는 Schema를 사용하는것을 권장한다. 기본적으로 설치되어있는 스키마를 보면 다음과 같다. https://json.schemastore.org/foxx-manifest.json { "$id": "https://example.com/address.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "An ad.. 2023. 9. 19. 개발용어) 폴리싱(Polishing) 폴리싱(Polishing) 개발 작업에서 종종 '폴리싱'이라는 용어를 종종 접하게되는데 간략하게 설명하면 `다듬는 과정`이라고 표현할 수 있다. 폴리싱은 핵심 메커니즘, 기능, 콘텐츠를 구현 이후에 단계에서 작업을 한다. 포켓몬으로 치면 이브이가 진화를 하는 과정이라고 할까나..? 적절한 비유가없어서 이렇게 표현했다. 게임 제작에서 마무리 작업 혹은 향상 시키는 단계를 나타내는데 이에 포함된 요소는 굉장히 다양하다. 버그 수정, 성능 최적화, 다양한 요소 조정으로 인해서 더욱 세련되고 몰입감 있는 경험을 선사하기 위한 보석 세공과 같은 연마 과정이라고 생각하면 된다. 폴리싱은 여러 제작 단계에서 사용하는데 단순하게 하나의 공정에서 좀더 F/U가 필요한 경우에도 사용하고 제품 출시 전 단계에서 '폴리싱 단.. 2023. 9. 11. 알고리즘) 매치 메이킹 (Matching Algorithms) 매치 메이킹 (Matching Algorithms)매치 메이킹이라는건 경쟁 게임에서 대결 상대를 선택하는 알고리즘으로 매치 메이킹으로 많은 알고리즘이 존재한다.상황에 맞게 적절한 알고리즘을 선택해서 개발 하는것을 추천한다. 원래 체스용으로 개발된 이 시스템은 다른 플레이어와의 상대적인 성과를 기준으로 플레이어에게 숫자 점수를 할당해서 점수를 기반으로 매칭하는 알고리즘으로 . 두 플레이어의 점수 차이를 기반으로 경기 결과를 예측합니다. 모든 유저그룹에 대한 매칭을 진행하는 안정적인 매칭 알고리즘으로 많이 사용한다. 홀수 길이 주기가 포함된 그래프에 특히 유용하다고 한다. 블라섬 알고리즘은 1965년 Jack Edmonds에 의해 발명되었으며 특히 네트워크 설계, 노동 시장 매칭, 컴퓨터 비전 등에.. 2023. 9. 4. Unity)Scene - OverDraw Scene - OverDraw Unity Engine에서 Scene 영역에 Oer Draw라는 메뉴가 있어서 간략하게 포스팅 하고자 한다. Scene 의 Draw Mode 를 선택하는 툴을 선택하면 메뉴가 나온다. 게임 오브젝트를 투명한 “실루엣”으로 렌더링한다. 컬러가 중첩되면 한 오브젝트 위에 다른 오브젝트가 그려진 곳을 쉽게 포착할 수 있다. 렌더링 과정(Culling - Rendering - Post-Processing)에서 Culling 부분에 해당되는 영역을 확인할 수 있다. 해당 영역이 많이 겹치는 부분에 대해서는 렌더링 과정에서 연산이 생긴다는 것을 인지하고 작업하자. (그려지지 않는 겹치는 영역이 많을 필요는 없다.) 최적화를 할때 OverDraw도 확인해보면 좋다. Unity Scene.. 2023. 8. 28. 개발용어) TBU , TBD , TBA, TBC TBU , TBD , TBA, TBC 업무를 진행하면서 종종 많이 쓰는 약어에 대한 정리이다. 대부분 다음에 어떤것을 할 예정이라는것을 나타내는 형태의 표현들이다. 약어 설명 해석 TBU To Be Updated 추후에 업데이트 예정이다. TBD To Be Decided 추후에 결정 예정이다. TBA To Be Announced 추후에 발표할 예정이다. TBC To Be Confirmed 추후에 확정 된다. 모두 다 `다음을 기약하는 표현`으로 업무에서도 자주 사용하는 용어로 약어로 알아두는것이 좋다. 특히 영어권에서는 무척 많이 사용한다고 한다. ★☆☆☆☆ 2023. 8. 26. Unity 전자책) 멀티플랫폼 게임의 성공적인 출시를 위한 5가지 원칙 멀티플랫폼 게임의 성공적인 출시를 위한 5가지 원칙 Unity 에서 제공하는 '전자책'의 일부 내용을 간략하게 포스팅한다. Unity 전자책 링크 : [링크] 멀티플랫폼 게임의 성공적인 출시를 위한 5가지 원칙 Please select게임 개발2D/3D 콘텐츠 개발AR/VR 가상 실감 콘텐츠 개발 및 사용자 교육메타버스 서비스/콘텐츠 개발3D 시각화와 모델링스마트 팩토리(모니터링 시스템 구현, 디지털 트윈, IoT 연계)머신 create.unity.com 한 플랫폼에서 먼저 출시하고 나중에 다른 플랫폼으로 확장하는 것도 좋은 전략이다. 플랫폼별로 문제가 발생할 때마다 적응하고 대응할 수 있다. 여러 플랫폼에서 작업을 진행하다보면 고려해야하는 상황과 추가 작업이 생각보다 많다. 가장 주력이 되는 플랫폼 서.. 2023. 8. 26. 개인생각) 물 경력에 대한 고민 물 경력에 대한 고민대부분은 개발자는 경력이 쌓이면 실력이 쌓인다는 생각을 하지만실상은 많은 경력을 가진 개발자라고 하더라도 경력대비 실력이 부족하다는 것을 표현하는 속어로 '물-경력'이라는 표현을 쓰는데 간략하게 개인 생각을 포스팅하고자 한다. 직무에 대해서 변별력이 없다고도 하는데. 경력대비 실력이 부족하다는것은 굉장히 슬픈 이야기이다.하지만 현실을 직시 해야 하기 때문에 시간이 지날수록 자신을 파악해보는게 중요하지 않을까 생각한다. 좀더 디테일하게 정리를 하자면 다음과 같다. 성과가 없는 경력성장이 정체된 경력할수있는 스킬셋이 부족한 경력본인만 할수있는 특별하지 않는 경력 그래도 경력대비 실력이라는 것은 상대적이기 때문에 굉장히 특별하게 잘하는 사람과 비교를 하거나 혹은 반대의 경우도 있으니 기준.. 2023. 8. 24. 문제해결)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. 이전 1 ··· 11 12 13 14 15 16 17 ··· 59 다음 반응형