본문 바로가기
반응형

개발/Unity312

Unity) UIObject Drag And Drop (UI오브젝트 드래그 앤 드랍) UIObject Drag And Drop (UI오브젝트 드래그 앤 드랍) 간단하게 UI Object를 Drag & Drop 하는 코드를 포스팅한다. using UnityEngine.EventSystems; public class Item : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler, IDropHandler { private bool isDragging = false; private Vector2 originalPointerPosition; private Vector3 originalLocalPosition; private Vector2 currentDragDelta; private RectTransform canvasRect.. 2023. 12. 20.
Unity)영상으로 녹화 하기(Editor:Recoder) 영상으로 녹화 하기(Editor:Recoder) Unity Recoder 패키지를 사용해서 '재생모드'중에 데이터를 캡처하고 저장이 가능한 패키지로 Editor에서만 사용이 가능하다. Unity 화면에서 영상을 녹화할때 사용하면 쓸만하다. 동영상, 애니메이션 클립, GIF, 오디오 녹음의 다양한 형태로 저장이 가능하다. 레코드 창을 사용하면 현재 장면의 다양한 유형의 데이터를 캡처하고 여러가지 녹화 설정( 프레임, 시간 간격,포맷, 애니메이션 클립 등등)으로 녹화가 가능하다. 옵션 설명 Frame Rate 녹화 프레임 (Target FPS, Max FPS, Cap FPS) Recording Mode 녹화 모드 Outpu.. 2023. 12. 15.
Unity 코드) GameObject 전체 경로 찾기(부모 오브젝트 포함) (GameObject : Path) GameObject 전체 경로 찾기(부모 오브젝트 포함) (GameObject : Path) 간단하게 특정 오브젝트(GameObject)를 기준으로 부모오브젝트를 찾는 코드이다. public string GetGameObjectPath(GameObject obj) { string path = null; if (obj) //오브젝트가 존재하면 { path = obj.name; while (obj.transform.parent) //부모가 존재하면 { obj = obj.transform.parent.gameObject; path = obj.name + '/' + path; //경로 추가 } } return path; //경로 반환 } Unity 의 GameObject의 구조는 Root 를 기준으로 하위에 추.. 2023. 12. 13.
Unity) RectTransform 비율로 처리하기 RectTransform 비율로 처리하기 Unity RectTransform을 비율로 처리하는 방법에 대해서 간략하게 포스팅한다. 흰색 배경의 오브젝트에 0.45%의 빨간색 영역을 차지하려면 컴포넌트를 다음과 같이 처리하면 된다. 결론적으로는RectTransform 의 Size Delta/ Anchors / Pivot 의 설정으로 다음과 같이 처리가 된 것이다. Anchors Max : 0 ~ 1 사이의 값이고 여기의 0.45 < 이 값이 전체를 기준으로 비율(45%)를 나타내고 이때 중요한 Size Delta 값은 0,0,0,0 이여야 한다. Pivot 값은 어디를 기준으로 중심점을 처리할 것이야 하는 수치 값이다. Unity discussions. Position UI ele.. 2023. 12. 12.
Unity) 에디터 디자인 가이드(Unity Editor Design Guide) 에디터 디자인 가이드(Unity Editor Design Guide) Unity Editor의 디자인 사이트이다. Unity Editor©에 대한 직관적이고 매력적인 경험을 구축하기 위한 공식 지침사이트로 유니티를 구성하는데에 있어서 레이아웃에 대한 정보와 구성에 대한 가이드가 잘 나와있다. 사이트 : [링크] Unity | Editor Foundations Design System Guidance for building intuitive and engaging experiences for the Unity Editor. www.foundations.unity.com Unity 공식 디자인 가이드 사이트로 컬러부터 에디터, 컴포넌트 등 다양한 형태의 가이드를 제시하고 있다. 간단하게 살펴보면 다음과 같다.. 2023. 12. 11.
Unity) 컷아웃 마스크(Cutout Mask / Reverse Mask) 컷아웃 마스크(Cutout Mask / Reverse Mask) Unity 에서 특정한 곳만 보이도록 처리하기 위해서 찾다가 발견한 코드로 간단하게 포스팅한다. Mask의 기능을 활용해서 특정 영역을 기준으로 마스크 처리되는 효과이다. 원본 링크: [링크] using UnityEngine; using UnityEngine.UI; using UnityEngine.Rendering; using System.Collections; public class CutoutMaskUI : Image { protected override void Start() { base.Start(); StartCoroutine(Fix()); } private IEnumerator Fix() { y.. 2023. 12. 6.
Unity) 코루틴(Coroutine)대신 쓰레드(Thread)를 사용해야하는 이유 코루틴(Coroutine)대신 쓰레드(Thread)를 사용해야하는 이유 Coroutine을 사용하는 경우와 Thread를 사용하면 좋은 경우에 대해서 간략하게 포스팅한다. Unity API는 스레드로부터 안전하지 않고 제한 없이 Thread를 생성이 가능하다. Unity API는 Main Thread에서 호출되어야하기 때문에 Coroutine 이 이에 해당한다. Unity Corotine은 동시성이 존재하고 Thread는 병렬성이 존재하는 특징으로 간단하게 생각하면 Main Thread에서 호출되어야하는 일이 아닌 복잡하고 병렬로 로드가 필요한 Work를 Thread로 사용하면 좋다. Thread를 생성해서 사용하는것도 비용이 들기 때문에 신중하게 고려하고 Main Thread에 동기화되는 시점도 고려해.. 2023. 12. 1.
문제해결)Assembly 'Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.144.dll' will not be loaded due to errors:Assembly name 'Google.VersionHandlerImpl' does not match file name 'Google.VersionHandlerImpl_v1.2.144' Assembly 'Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.144.dll' will not be loaded due to errors: Assembly name 'Google.VersionHandlerImpl' does not match file name 'Google.VersionHandlerImpl_v1.2.144' 예전에 작업한 프로젝트를 열다보니 다음과 같이 에러가 발생했다. 해당 개발을 했을때는 EDM4U의 버전이 굉장히 낮았다 (1.2.144 = 2020년03월) 기존의 중복된 버전이 Project에 같이 포함되어있어서 발생하는 에러이다. 기존의 중복된 파일들을 삭제한다. Firebase 도 비슷한 상황이라서.. 2023. 11. 21.
Unity)Input System( Player Input Compoent - Actions 사용 하기 ) Input System ( Player Input Compoent - Actions 사용 하기 ) Unity 에서 지원하는 Input System 를 간략하게 사용하는 포스팅을 진행한다. Input System을 사용하면 조이스틱(JoyStick) / 키보드 (KeyBord) / 마우스 (Mouse) / 터치스크린(TouchScreen) 등 여러가지 상황에서 Input 에 대한 처리가 굉장히 편리하다. Legacy 방식으로는 코드에서 플랫폼 전처리와 각 상황에 맞춰서 코딩을 해줘야하는데 Input System으로는 간편하게 추가 삭제 및 관리가 유용하다. Unity Registry - Input System 검색 (Install) UPM 설치 이후에는ㅇ Input.. 2023. 11. 6.
Unity) Profiler로 Thread 확인 방법 (CPU Usage) Profiler로 Thread 확인 방법 (CPU Usage) Profiler 를 활용해서 Thread에 상태를 확인하는 방법을 간단히 포스팅한다. Hierarchy -> Timeline 변경 뷰 기능 타임라인 (TimeLine) 특정 프레임에 대한 타이밍 분석 데이터를 프레임 길이의 시간 축을 따라 표시합니다. 이는 모든 스레드의 타이밍을 한 번에 그리고 발생한 프레임 내에서 확인할 수 있는 유일한 뷰 모드입니다. 따라서 전체 스레드에 대한 타이밍 간 상관 관계를 지정할 수 있습니다. 예를 들어 잡 시스템 워커 스레드는 메인 스레드의 시스템이 예약한 후에 시작됩니다. 계층 구조 (Hierarchy) 내부 계층 구조를 기준으로 타.. 2023. 10. 27.
Unity) LineRenderer (Sprite Repeat) LineRenderer (Sprite Repeat) 라인 렌더러를 사용해서 이미지를 연속해서 처리하는 것을 간략하게 포스팅한다. LineRendere 는 Material을 셋팅해야한다. 단순하게 Material을 셋팅하면 한개 만 딱 나오는데 Line으로 처리가되는 만큼 반복해서 나와야 한다. Sprite 옵션중에 'Wrap Mode'가 있는데 이 항목을 'Repeat'으로 수정한다. Unity -LineRendere : [링크] Unity - Manual: Line Renderer Line Renderer Switch to Scripting The Line Renderer component takes an array of two or more points in 3D space, and draws a s.. 2023. 10. 26.
문제해결)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.
반응형