3월 알쓸유잡 : Unity의 UI 시스템 (UGUI)의 성능 최적화

  Рет қаралды 16,551

Unity Korea

Unity Korea

Күн бұрын

🔹알쓸유잡 2023년 3월🔹
3월 15일 오후 4시, 유니티 라이브의 인기 코너
'알쓸유잡' 방송이 시작됩니다.
📌Unity의 UI 시스템 (UGUI)의 성능 최적화
(feat. 유니티 소스 코드)
Profiling, UI Batching, Canvas, Raycaster, UI Element, Animator, targetFrameRate 등
UI 제작 시 참고할 최적화 가이드를 소개합니다.
+ 유니티 소스 코드를 함께 살펴보며 배경 원리를 함께 이해해 봅시다!
오지현 에반젤리스트와 함께 메모리 최적화를 위한
꿀팁을 자세히 알아보세요
-
📌 3월 알쓸유잡: Unity UI 시스템 (UGUI)의 성능 최적화
📍 UGUI 시스템 구조 및 개념 파악하기 (feat. 유니티 소스 코드)
00:00 인트로
03:32 UGUI의 병목 (GPU, CPU 바운드 등)
09:03 메시로 구성된 UI
11:28 데이터의 조합, 메시
18:00 그래픽 요소를 담은 Graphic 클래스
23:57 렌더링이 이루어지는 Canvas (.cpp)
31:36 하위 캔버스 생성 및 별도 관리가 가능한 Nested Canvas
36:46 계층 구조 시스템에 활용하는 Dirty flag
40:01 Transform을 상속받는 RectTransform (.cpp)
45:15 레이아웃과 메시를 다시 계산하는 Rebuild
53:36 렌더링 명령을 위한 Batch building (Canvas)
56:14 Batching의 4가지 기준
57:12 Batching 데모로 확인하기
1:10:26 Transparent 오브젝트에 영향을 주는 Rendering order
1:12:51 투명 오브젝트에서의 Overdraw 이슈
1:13:31 UI에서의 Pixel Perfect
📍 UGUI 시스템 성능 최적화 TIP
1:21:41 UI 구조화에 유용한 Layout Components
1:26:38 Layout Components 활용 팁
1:27:55 Q. 레이아웃 컴포넌트를 런타임 상에서 비활성화하고 에디터 모드에서 작동하게 하는 옵션이 있나요?
1:30:06 권장사항: Object Pool 활용하기
1:32:35 항상 변경되는 동적인 UI에만 Animator 사용하기
1:35:39 필요한 곳에서만 Raycaster 사용하기
1:38:25 Full Screen UI 사용 시 3D 오브젝트 렌더링하지 않기
1:39:50 Text 대신 Icon 사용하기
1:41:02 글자를 미리 텍스처로 제작하는 Text Mesh Pro
1:46:04 Xcode & Instrument로 프로파일링하기
📍성능 최적화 관련 유용한 유니티 가이드
- 게임 개발을 최적화하는 9가지 방법: on.unity.com/3JjiMy5
- Optimize your game performance for Consoles and PC: on.unity.com/3LxNzKp
- Ultimate guide to profiling Unity games: on.unity.com/3YRmu7R
- 모바일 게임 성능 최적화 팁: on.unity.com/3TmyrRC

Пікірлер: 18
@UnityKoreaHi
@UnityKoreaHi Жыл бұрын
📌 3월 알쓸유잡: Unity UI 시스템 (UGUI)의 성능 최적화 📍 UGUI 시스템 구조 및 개념 파악하기 (feat. 유니티 소스 코드) 00:00 인트로 03:32 UGUI의 병목 (GPU, CPU 바운드 등) 09:03 메시로 구성된 UI 11:28 데이터의 조합, 메시 18:00 그래픽 요소를 담은 Graphic 클래스 23:57 렌더링이 이루어지는 Canvas (.cpp) 31:36 하위 캔버스 생성 및 별도 관리가 가능한 Nested Canvas 36:46 계층 구조 시스템에 활용하는 Dirty flag 40:01 Transform을 상속받는 RectTransform (.cpp) 45:15 레이아웃과 메시를 다시 계산하는 Rebuild 53:36 렌더링 명령을 위한 Batch building (Canvas) 56:14 Batching의 4가지 기준 57:12 Batching 데모로 확인하기 1:10:26 Transparent 오브젝트에 영향을 주는 Rendering order 1:12:51 투명 오브젝트에서의 Overdraw 이슈 1:13:31 UI에서의 Pixel Perfect 📍 UGUI 시스템 성능 최적화 TIP 1:21:41 UI 구조화에 유용한 Layout Components 1:26:38 Layout Components 활용 팁 1:27:55 Q. 레이아웃 컴포넌트를 런타임 상에서 비활성화하고 에디터 모드에서 작동하게 하는 옵션이 있나요? 1:30:06 권장사항: Object Pool 활용하기 1:32:35 항상 변경되는 동적인 UI에만 Animator 사용하기 1:35:39 필요한 곳에서만 Raycaster 사용하기 1:38:25 Full Screen UI 사용 시 3D 오브젝트 렌더링하지 않기 1:39:50 Text 대신 Icon 사용하기 1:41:02 글자를 미리 텍스처로 제작하는 Text Mesh Pro 1:46:04 Xcode & Instrument로 프로파일링하기 📍성능 최적화 관련 유용한 유니티 가이드 - 게임 개발을 최적화하는 9가지 방법: on.unity.com/3JjiMy5 - Optimize your game performance for Consoles and PC: on.unity.com/3LxNzKp - Ultimate guide to profiling Unity games: on.unity.com/3YRmu7R - 모바일 게임 성능 최적화 팁: on.unity.com/3TmyrRC
@junghopark8888
@junghopark8888 Жыл бұрын
UI관련 접허기 어려운 최적화에 대해 잘 즐겼습니다 항상 건강하십시오 두분😢
@Tester13565
@Tester13565 Жыл бұрын
알쓸유잡!! 유용해요~
@ohminkwon
@ohminkwon Жыл бұрын
지나치기 쉬운 부분에 대해 알기쉽게 설명해주셔서 정말 큰 도움이 되었습니다. screen space- camera, world space 편도 만들어 주실거죠?
@RandomInkey
@RandomInkey 2 ай бұрын
와 좋은 내용 감사합니다. 거의 ugui만 사용해서 개발을 하는 중인데, 최적화에서 사용할 수 있을만한 아이디어들이 많이 보이네요!
@hyki1297
@hyki1297 Жыл бұрын
UI에 대해 몰랐던 것 많이 알아갑니다. [1:20:36] 레이아웃을 캔버스를 통해서 잡는 게 성능상 이슈가 덜 하겠네요
@sangsangwoo378
@sangsangwoo378 8 ай бұрын
혹시 레벨 디자인 할때 움직이는 오브젝트들도 Environment 하위 폴더 안에 넣어서 관리하는데 그럼 Environment안에 있는 모든 오브젝트들이 다시 계산되는건가요?
@user-qh9xl9ry7d
@user-qh9xl9ry7d 4 ай бұрын
1:24:55 에서 '재구성이 필요할 때 레이아웃을 활성화' 이 부분에서 좀 궁금한 게 있는데 레이아웃을 활성화 한 상태에서 가만히 두어도 SetDirty()가 발생하나요? 테스트 해보니 레이아웃 그룹의 자식을 건들지 않는 이상 SetDirty()가 실행되진 않는 것 같은데 그러면 굳이 레이아웃을 비활성화, 활성화 할 필요 없이 레이아웃을 활성화 한 상태로 두어도 성능 측면에서 이슈가 없지 않나요? 꼭 재구성이 필요할 때 다시 켰다가 끄는 것이 성능에 좋습니까? 그렇다면 정량적으로 얼마만큼 좋습니까?
@user-fu5ei7by1j
@user-fu5ei7by1j Жыл бұрын
질문 있습니다!! ui제작할때 이미지의 갯수를 최대한 줄이는게 최적화에 도움이 되나요? 예를 들어서 단순히 배경 이미지 1장에 각종 장식용 이미지 10개를 각각의 이미지로 배경의 자식으로 넣는거랑 배경이랑 장식용 이미지를 포토샵에서 하나로 합쳐서 넣는거 입니다!!
@UnityKoreaHi
@UnityKoreaHi 11 ай бұрын
물론 이미지를 줄이면 부하가 적어지지만 무리한 축소는 컨텐츠의 퀄리티에 영향을 줄 수 있으니 적절한 축소와 배칭을 활용하시는 것이 중요합니다.
@nullerror934
@nullerror934 9 ай бұрын
이번에 유니티에서 사용료 정책을 바꿨더라구요.. 슬픈 일입니다
@user-pu3ji1op2d
@user-pu3ji1op2d Жыл бұрын
캔버스 STATIC 과 DYNAMIC을 나눌때, recttransform이동 말고, Text의 3,2,1과 같이 string문자 변화나 SetActive활성화 비활성화도 다이나믹으로 취급되는건가요?
@corderre151
@corderre151 Жыл бұрын
텍스트도 글자가 변경되면 메시 사이즈가 변경되니 후자로 보시는게 맞을 것 같아요
@OZTVjjang
@OZTVjjang Жыл бұрын
넵 Text도 마찬가지입니다
@electrovignette9802
@electrovignette9802 8 ай бұрын
Atlas 했는데 왜 안 바뀔까 했는데 z값에 영향을 받아서 최적화가 안됐구나....랜더모드를 Camera로 하니까 당연히 z값이 다를거고 결국 전부 계산된거네...Overlay로 바뀌니 1/4일로 줄어드네..
@dvviyout
@dvviyout Жыл бұрын
난 왜 본방을 놓치는걸까? 트위터 없으세요?
@UnityKoreaHi
@UnityKoreaHi Жыл бұрын
유니티 코리아 채널 구독과 알림 설정 부탁드립니다! 알쓸유잡 라이브는 매월 셋째주 수요일 4시, 유니티 라이브는 매월 마지막주 수요일 4시에 진행됩니다.
@dvviyout
@dvviyout Жыл бұрын
@@UnityKoreaHi 이미 하고 있다는게 함정 ㅠㅡㅠ
참 신기한 요즘 세상입니다. | Stable Diffusion Korea 최돈현
1:13
Final muy increíble 😱
00:46
Juan De Dios Pantoja 2
Рет қаралды 46 МЛН
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 10 МЛН
1❤️
00:17
Nonomen ノノメン
Рет қаралды 12 МЛН
бесит старшая сестра!? #роблокс #анимация #мем
00:58
КРУТОЙ ПАПА на
Рет қаралды 3,5 МЛН
[유니티 TIPS] 새로워진 길찾기 AI Navigation 2.0 공략
16:41
2월 알쓸유잡 : 메모리 최적화를 위한 에셋 관리
1:02:28
U Day Seoul: Game | 2024 시즐릴 공개
1:05
Unity Korea
Рет қаралды 1,8 М.
Final muy increíble 😱
00:46
Juan De Dios Pantoja 2
Рет қаралды 46 МЛН