본문 바로가기

unity3d/Class10

[unity] UI UIText에서 TextMeshProUGUI로 일괄 교체하는 방법 Unity에서 Scene 내 모든 UI Text 컴포넌트를 TextMeshProUGUI Text 컴포넌트로 일괄 교체하는 방법에 대해 알아보자. 유니티에서 2D 텍스트 표현에 있어 예전에 제작된 프로젝트 대부분이 유니티에서 제공하는 기본 UIText 컴포넌트로 구성되어 있다. 기본 UIText는 사용하기는 간편하지만, 확대 시 텍스트 깨짐, 텍스트 흐림 및 Batch 관리의 어려움 등의 단점이 존재하였다. TextMeshProUGUI는 기존 UIText에 비해 폰트를 bake 해서 텍스쳐 1장으로 관리되기 때문에 퍼포먼스에 능하고, UIText의 단점을 보완되어 나온 라이브러리로 최근 프로젝트는 대부분 TextMeshProUGUI를 사용하고 있다. 1. 컴포넌트 교체 시 고려사항 그럼 텍스트 컴포넌트 교.. unity3d/Class 2022. 6. 28.
[unity] UI 텍스트 폰트 일괄 교체하는 방법 Unity에서 Scene 내 모든 UI Text 및 TextMeshProUGUI Text의 폰트를 일괄 교체하는 방법에 대해 알아보자. 프로젝트 중에 디자이너의 요청에 따라, 메인 폰트가 변경되는 상황이 발생하였다. 물론 Scene에 들어가서 구성한 UI의 Text 컴포넌트를 찾아가며 하나씩 바꿔줄 수도 있지만, 만약 Scene과 UI 수량이 많다면, 상당히 귀찮은 작업이 아닐 수 없다! 자동화 개념을 생각하여 에디터클래스로 스크립트를 만들어 클릭 한 번으로 일괄 교체하는 방법에 대해 알아보자. 1. 폰트 교체용 EditorClass 제작 프로젝트 내 Editor 폴더를 만든 후 UITextFontSetter 클래스를 만들어 보자. 유니티에서 제공하는 Text의 경우 유니티의 기본 UGUI인 UIText.. unity3d/Class 2022. 6. 24.
[Unity] 넷플릭스 같은 멀티 스크롤뷰 UI 만들기 Unity UI에서 스크롤 뷰를 확장하여 넷플릭스(Netflix) UI 같이 멀티 스크롤 뷰가 되는 방법에 대해 알아보자. Unity UI 제작 시 메인 페이지는 상하 좌우로 스크롤이 되어야 하고, 메인 페이지 내 서브 페이지는 좌우로 스크롤돼야 하는 화면을 만든다고 가정해보자. (넷플릭스 메인화면과 같은 화면) 기본적으로 메인 페이지의 ScrollRect 컴포넌트의 Horizontal 옵션을 체크 해제하여 상하 좌우 스크롤만 되도록 하게 하고, 서브 페이지의 ScrollRect에는 Vertical 옵션을 체크 해제하여 좌우만 스크롤되도록 구성을 하는 것이 일반적이다. 이럴 경우 문제가 서브페이지에서 상하 스크롤을 할 경우 상하 스크롤이 되지 않는다. 서브 페이지에서 상하 스크롤을 할 경우, 메인 페이지.. unity3d/Class 2022. 6. 13.
[Unity] UI 재사용 스크롤뷰 제작 Unity UI에서 스크롤 뷰는 상당히 많은 곳에서 사용한다. 이런 스크롤 뷰를 재사용 가능한 스크롤 뷰로 만드는 방법에 대해 알아보자. Unity ScrollView의 단점은 스크롤되는 데이터가 많아질수록 느려지고 메모리 사용도 많아진다는 점이다. 따라서, 스크롤뷰에 아이템을 Instantiate를 통해 모든 데이터를 생성하는 것이 아닌 일부 아이템을 가지고 데이터만 교체해주는 오브젝트 풀링 방식으로 개선하게 되면, 속도 향상 및 메모리 확보 효과도 좋다. Instantiate를 통한 오브젝트 생성 및 Destroy를 통한 오브젝트 삭제의 과정을 거치지 않기에 프레임 밀림 현상도 개선이 된다. 해당 기능 구현을 위해 총 2개의 base 클래스를 먼저 제작해보자. 1. UIRecycleViewContro.. unity3d/Class 2022. 6. 10.
[Unity] UI PageView Class Unity UI에서 페이지 단위로 View를 구성하는 PageView Class를 제작해보자. Unity에서 페이지 단위로 UI를 나누고 싶을 때 활용하면 좋은 PageView Class를 제작해보자. 해당 기능은 사진첩을 커버 플로우 형태로 보거나 책을 넘기는 기능 등에 사용하면 좋다. Unity에서 기본적으로 제공하는 ScrollView를 활용하여 쉽게 구현이 가능하다. 1. UIPagingViewController Class 작성 - 해당 클래스는 Page를 관리하고 View를 드래그하여 컨트롤할 수 있는 클래스이다. - Unity에서 제공하는 Scroll 컴포넌트를 필수 컴포넌트로 가지고 있어야 한다. - Unity EventSystem에서 제공하는 IBeginDragHandler 및 IEndDr.. unity3d/Class 2022. 6. 9.
[Unity] UI DragDrop Class Unity UI에서 자주 사용하는 DragDrop 기능을 구현해보자. Unity에서 미니 2D Game 기능 중 DragDrop 기능은 상당히 많이 사용한다. Unity에서 2D Image를 마우스(터치)를 통해 Drag 하고 원하는 위치에 Drop 할 수 있는 클래스를 제작해 보자. 1. 사전 준비 - LeanTween 플러그인 설치 - Unity에서 Tween 기능 구현을 위해 LeanTween 라이브러리 에셋을 사용하겠다. - LeanTween은 에셋스토어를 통해서 무료로 다운로드할 수 있다. - Drop존에 가까이 왔을 때 자동으로 Drop존으로 Tween 하도록 할 때 해당 라이브러리 기능을 사용한다. - 다운로드 받으러 가기 2. UIDragBehaviour Class 작성 - UIDragBe.. unity3d/Class 2022. 6. 8.
[unity] Open Path Utility editor class Unity의 UIElements를 사용하여, 자주 사용하는 폴더를 바로 열어볼 수 있는 기능을 가진 Open Path Utility Editor Class를 작성해보자. 1. Open Path Utility Class 제작 이유 - 유니티를 하다 보면 항상 특정 폴더를 열어야 할 때(Asset Path, PersistentDataPath, StreamingAssetPath 등) 파인더를 열어서, 해당 폴더를 찾아가곤 했다. 개발할 때 이런 시간적 비용이 점점 커짐에 따라, 해당 기능을 유니티 에디터 기능으로 만들고, 유니티에서 바로 폴더를 열 수 있는 기능을 제작해 놓으면, 상당 부분 개발 시간(비용)을 줄일 수 있다. 2. Unity UIElements 소개 - UIElement는 unity 2019버.. unity3d/Class 2022. 5. 30.
[unity] Build Script class Unity에서 프로젝트 세팅으로 하는 빌드가 아닌, 빌드를 스크립트를 통해서 빌드할 수 있는 Build Script Class를 제작해보자. 1. Build Script를 사용해야 되는 이유 - Unity에서 빌드는 File Build Settting -> Build or Build And Run을 통한 빌드를 하는 것이 일반적이다. 하지만 프로젝트를 열때마다 입력해야 하는 keystore 비밀번호나, apk 경로, apk 이름 등을 간소화하고자 빌드 스크립트를 이용하는 경우도 많아지고 있다. - 게임이나 앱 제작 시 빌드 스크립트만 잘 구축해 놓아도 상당히 시간 비용을 줄일 수 있다. 2. Build Script 제작 방법 1. 우선 프로젝트를 열고 Asset/Scripts/Editor 폴더를 만들어 .. unity3d/Class 2022. 5. 20.
[unity] 구글플레이 인앱 업데이트 및 인앱 리뷰 연동 클래스 구글 플레이 API 중 Unity에서 사용하기 유용한 Play In-App Update와 Play In-App Review 클래스를 묶어 매니저 클래스를 만들어 보자. 1. Play In-App 사용 이유 - 구글에서 제공하는 Play In-App 라이브러리 중 Billing 이나 Play Asset Delivery 같은 api 도 있지만, 유니티에서 제공하는 인앱 결제 라이브러리나 addresable 같은 파워풀한 기능들이 있으니, 따로 추가할 필요는 없어 보인다. - Unity에서 사용할만한 Play In-App 은 Update와 Review가 유용해보인다. - Play In-App Update : 버전 코드가 올라간 앱이 플레이스토어에 출시되면, 앱에서 자동으로 사용자에게 앱 업데이트를 알려주고, .. unity3d/Class 2022. 5. 19.
[unity] Resize Image class 소셜 플랫폼이나 게임 앱에서 다양한 개인 사진을 서버로 업로드 할 때 용량의 문제가 발생한다. Unity에서 큰 사이즈의 Image 파일을 Resize 하여 작은 용량의 상태로 서버로 업로드 할 수 있는 방법에 대해 알아보자. 1. Resize Image를 해야 하는 이유 - 앱에서 개인 프로필 사진을 로컬에서 불러와서 설정하는 경우를 가정해보자. 사용자는 앱에서 갤러리 라이브러리를 열고, 내 사진을 선택하여 프로필 이미지를 교체하고 이 과정에서 프로필 사진은 바이트로 저장되어 서버로 전송이된다. 문제는 내 갤러리의 사진 사이즈가 2048 을 넘어가게 되면, 서버 부담도 커지고. 다운로드 받을 때 걸리는 시간도 길어질 것이다. - 물론 서버 단에서 이미지 최적화 후 다시 내려주는 경우도 있지만, 클라이언.. unity3d/Class 2022. 5. 16.