SlideShare a Scribd company logo
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能
Tips and Tricks for
Optimising Unity UI
Andy Touch
Product Content Evangelist, Unity Technologies
Unity UI
Unity UI
Interactive LayoutVisual
Text
Image
RawImage
Button
Toggle
Slider
etc
VerticalGroup
ContentSizeFitter
LayoutElement
etc
In an Ideal World…
…However, This Button Does Not Exist!
Optimising UI is Case-By-Case Dependent
•  Range of Platforms: Mobile, to Console, to VR.
•  Range of Styles: 2D, 3D, Mixed
•  Range of Genres: Racing, FPS, 2D Platformer, etc
•  Not all advice will work in all use-cases!
•  Always best to Profile and Test on target device.
The Balance of UI Systems
Flexibility Performance
UI Batching
UI Batching Rules
A UI Batch Happens When 2 or more Visual Components…
•  Are on the same Canvas.
•  Share the same Material.
•  Share the same Sprite Asset.
•  Have RectTransforms that are Co-Planar to each other (Same Z Pos)
•  Are clipped by the same Mask.
Frame Debugger and UI Profiler
Demo!
Sprite Atlas
Demo!
UI Shaders
•  All Visual Elements: ‘UI/Default Shader’.
•  Supports Masking, Clipping, Vertex Coloring etc
•  Built-In Unity Shader Source Code: Unity Archive Page
•  All Shader Source Code can be customised!
•  Demo Time!
Text Mesh Pro
•  Advanced Text Customisation and Rendering System
•  Very Popular Unity Asset Store Package
•  Acquired by Unity Technologies in February 2017
•  Free to Download Today!
•  Demo Time!
The Rebuild Process
•  UI Element Layout changes -> Element is set to ‘Dirty’.
•  UI Element Graphic changes -> Element is set to ‘Dirty’.
•  Rebuild Process: Recalculates the ‘Dirty’ components/objects.
•  This can be seen in the Profiler as ‘Canvas.SendWillRenderCanvases’
Unity UI - Source Code
bitbucket.org/Unity-Technologies/ui
UI Source Code – ‘Graphic.cs’
UI Source Code – ‘Graphic.cs’
UI Source Code – ‘Graphic.cs’
UI Source Code – ‘Graphic.cs’
Layout Components
•  Vertical, Horizontal, Grid, Layout Element, etc
•  Very useful for structuring UI and setting up UI elements in order.
•  Child Order determines how the Layout is structured.
•  Related RectTransform Changes -> Layout is set to ‘Dirty’.
•  Layout is ‘Dirty’ -> Added to Rebuild Process
UI Source Code – ‘LayoutGroup.cs’
UI Source Code – ‘LayoutGroup.cs’
UI Source Code – ‘LayoutGroup.cs’
Layout Components
•  Suggestions:
•  Enable Layout when needed to be rebuilt. Disable when not needed.
•  Smaller number of child elements being rebuilt; combine UI elements.
•  Create own Layout Manager Script; Control ‘when’ Layout is updated.
•  Object-Pooled Scroll List; Reuse elements as they are scrolled.
Rebuild Process – Pixel Perfect
•  When RectTransform’s move, they will snap to exact pixel edges.
•  Pro: ‘Pixel Perfect’ visuals.
•  Con: Very expensive for many moving elements.
Rebuild Process – Animator
•  ‘Animator’ on UI – for Buttons, Transitions, etc
•  In ‘Graphic.cs’:
Sub Canvases
•  It is possible to add a ‘Canvas’ component to child UI of a Canvas.
•  This will create a ‘Sub-Canvas’.
•  Can be used to isolate Canvas rebuilds.
•  A Sub-Canvas will:
- Have its own independent settings (Such as Pixel Perfect)
- Rebuild its child batches, when required.
- Can enable and disable visibility of all child elements.
•  Demo Time!
Unity UI - Source Code
bitbucket.org/Unity-Technologies/ui
Unity UI – Best Practices Guide
unity3d.com/learn/tutorials/topics/best-practices
Thank You!
Any Questions?
@andytouch

More Related Content

PPTX
Photonのサービス選択の勘どころ
GMO GlobalSign Holdings K.K.
 
PPTX
UnityでUI開発を高速化した件
Grenge, Inc.
 
PDF
AWS CognitoからAuth0への移行パターン4つ
株式会社スタジオメッシュ
 
PDF
20分でわかるgVisor入門
Shuji Yamada
 
PDF
Doozy UI 使おうぜ! #unity_lt
torisoup
 
PDF
Cinemachineで見下ろし視点のカメラを作る
Unity Technologies Japan K.K.
 
PDF
Unityアニメーションシステムの 今と未来の話
Unity Technologies Japan K.K.
 
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
Photonのサービス選択の勘どころ
GMO GlobalSign Holdings K.K.
 
UnityでUI開発を高速化した件
Grenge, Inc.
 
AWS CognitoからAuth0への移行パターン4つ
株式会社スタジオメッシュ
 
20分でわかるgVisor入門
Shuji Yamada
 
Doozy UI 使おうぜ! #unity_lt
torisoup
 
Cinemachineで見下ろし視点のカメラを作る
Unity Technologies Japan K.K.
 
Unityアニメーションシステムの 今と未来の話
Unity Technologies Japan K.K.
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 

What's hot (20)

PDF
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
 
PDF
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
 
PDF
Unityでオンラインゲーム作った話
torisoup
 
PDF
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
Unity Technologies Japan K.K.
 
PDF
Topology Managerについて / Kubernetes Meetup Tokyo 50
Preferred Networks
 
PDF
CUDA 6の話@関西GPGPU勉強会#5
Yosuke Onoue
 
PDF
【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならね
UnityTechnologiesJapan002
 
PDF
UniTask入門
torisoup
 
PDF
NetworkXによる語彙ネットワークの可視化
Shintaro Takemura
 
PPTX
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
 
PDF
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
株式会社MonotaRO Tech Team
 
PDF
DeNAの分析を支える分析基盤
Kenshin Yamada
 
PDF
UniRx完全に理解した
torisoup
 
PDF
Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
小林 信行
 
PDF
やりなおせる Git 入門
Tomohiko Himura
 
PPTX
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기
Jong Wook Kim
 
PPT
試験にでるSpring
土岐 孝平
 
PPTX
RPGにおけるイベント駆動型の設計と実装
Koji Morikawa
 
PDF
Linux女子部 iptables復習編
Etsuji Nakai
 
PDF
中級グラフィックス入門~シャドウマッピング総まとめ~
ProjectAsura
 
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
 
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
 
Unityでオンラインゲーム作った話
torisoup
 
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
Unity Technologies Japan K.K.
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Preferred Networks
 
CUDA 6の話@関西GPGPU勉強会#5
Yosuke Onoue
 
【Unite Tokyo 2019】大量のオブジェクトを含む広いステージでも大丈夫、そうDOTSならね
UnityTechnologiesJapan002
 
UniTask入門
torisoup
 
NetworkXによる語彙ネットワークの可視化
Shintaro Takemura
 
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
 
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
株式会社MonotaRO Tech Team
 
DeNAの分析を支える分析基盤
Kenshin Yamada
 
UniRx完全に理解した
torisoup
 
Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
小林 信行
 
やりなおせる Git 入門
Tomohiko Himura
 
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기
Jong Wook Kim
 
試験にでるSpring
土岐 孝平
 
RPGにおけるイベント駆動型の設計と実装
Koji Morikawa
 
Linux女子部 iptables復習編
Etsuji Nakai
 
中級グラフィックス入門~シャドウマッピング総まとめ~
ProjectAsura
 
Ad

Viewers also liked (14)

PDF
【Unite 2017 Tokyo】中国でAndroidアプリを出す!Xiaomiストアでのアプリリリース、収益化のためにできること
Unity Technologies Japan K.K.
 
PDF
【Unite 2017 Tokyo】バグを殲滅!Unityにおける実践テスト手法
Unity Technologies Japan K.K.
 
PDF
【Unite 2017 Tokyo】いかにして個人制作ゲームで生きていくか〜スマホゲームレッドオーシャンの泳ぎ方〜
Unity Technologies Japan K.K.
 
PDF
【Unite 2017 Tokyo】セルシェーダーを使用した3Dキャラアプリの開発事例
Unity Technologies Japan K.K.
 
PDF
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
 
PDF
【Unite 2017 Tokyo】Navmesh完全マスターへの道
Unity Technologies Japan K.K.
 
PDF
【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~
Unity Technologies Japan K.K.
 
PPTX
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
MinGeun Park
 
PDF
Unity での asset bundle による追加コンテンツの扱い方
Kouji Hosoda
 
PDF
【Unite 2017 Tokyo】新アセットバンドルツール詳解:アセット設定とアセットバンドルのワークフローを簡単に
Unite2017Tokyo
 
PDF
AssetBundle (もどき) の作り方
Mori Tetsuya
 
PDF
【Unite 2017 Tokyo】もっと気軽に、動的なコンテンツ配信を ~アセットバンドルの未来と開発ロードマップ
Unite2017Tokyo
 
PPTX
유니티 팁&트릭 Unity Tip & Trick
MinGeun Park
 
PDF
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
Unity Technologies Japan K.K.
 
【Unite 2017 Tokyo】中国でAndroidアプリを出す!Xiaomiストアでのアプリリリース、収益化のためにできること
Unity Technologies Japan K.K.
 
【Unite 2017 Tokyo】バグを殲滅!Unityにおける実践テスト手法
Unity Technologies Japan K.K.
 
【Unite 2017 Tokyo】いかにして個人制作ゲームで生きていくか〜スマホゲームレッドオーシャンの泳ぎ方〜
Unity Technologies Japan K.K.
 
【Unite 2017 Tokyo】セルシェーダーを使用した3Dキャラアプリの開発事例
Unity Technologies Japan K.K.
 
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
 
【Unite 2017 Tokyo】Navmesh完全マスターへの道
Unity Technologies Japan K.K.
 
【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~
Unity Technologies Japan K.K.
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
MinGeun Park
 
Unity での asset bundle による追加コンテンツの扱い方
Kouji Hosoda
 
【Unite 2017 Tokyo】新アセットバンドルツール詳解:アセット設定とアセットバンドルのワークフローを簡単に
Unite2017Tokyo
 
AssetBundle (もどき) の作り方
Mori Tetsuya
 
【Unite 2017 Tokyo】もっと気軽に、動的なコンテンツ配信を ~アセットバンドルの未来と開発ロードマップ
Unite2017Tokyo
 
유니티 팁&트릭 Unity Tip & Trick
MinGeun Park
 
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
Unity Technologies Japan K.K.
 
Ad

Similar to 【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能 (20)

PPTX
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
Gerke Max Preussner
 
PDF
iOS Game Development With UIKit
Martin Grider
 
PDF
Adventures in cross platform ConnectJS / TiConnect 2014
Jason Kneen
 
PPTX
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...
Gerke Max Preussner
 
PPTX
Creating great Unity games for Windows 10 - Part 1
Jiri Danihelka
 
PPTX
unity basics
Reham Maher El-Safarini
 
PDF
Qt Developer Days 2009 Keynote - Portable UIs
account inactive
 
PDF
iOS storyboard
MinHyeok Kim
 
PDF
Building VR Applications For Google Cardboard
Mark Billinghurst
 
PDF
Xamarin 9/10 San Diego Meetup
Seamgen
 
PDF
New 2D World-Building, Animation & Graphics Features in Unity
Unity Technologies
 
PDF
Living in the material world nidhi shah
Nidhi Shah
 
PDF
Xtext, diagrams and ux
Dr. Jan Köhnlein
 
PPTX
Intuit Mobile Custom Views
Eugene Krivopaltsev
 
PPTX
West Coast DevCon 2014: The Slate UI Framework (Part 1) - Introduction
Gerke Max Preussner
 
PPTX
Material design
ahmed Shaker
 
PDF
Motion design in FIori
Roman Rommel
 
PPTX
Spectrum 2015 responsive design
Neil Perlin
 
PPTX
React Native: Introduction
InnerFood
 
PPTX
App Dev-GDG USAR Tech Winter Break 2024.pptx
raiaryan174
 
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
Gerke Max Preussner
 
iOS Game Development With UIKit
Martin Grider
 
Adventures in cross platform ConnectJS / TiConnect 2014
Jason Kneen
 
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...
Gerke Max Preussner
 
Creating great Unity games for Windows 10 - Part 1
Jiri Danihelka
 
Qt Developer Days 2009 Keynote - Portable UIs
account inactive
 
iOS storyboard
MinHyeok Kim
 
Building VR Applications For Google Cardboard
Mark Billinghurst
 
Xamarin 9/10 San Diego Meetup
Seamgen
 
New 2D World-Building, Animation & Graphics Features in Unity
Unity Technologies
 
Living in the material world nidhi shah
Nidhi Shah
 
Xtext, diagrams and ux
Dr. Jan Köhnlein
 
Intuit Mobile Custom Views
Eugene Krivopaltsev
 
West Coast DevCon 2014: The Slate UI Framework (Part 1) - Introduction
Gerke Max Preussner
 
Material design
ahmed Shaker
 
Motion design in FIori
Roman Rommel
 
Spectrum 2015 responsive design
Neil Perlin
 
React Native: Introduction
InnerFood
 
App Dev-GDG USAR Tech Winter Break 2024.pptx
raiaryan174
 

More from Unity Technologies Japan K.K. (20)

PDF
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
Unity Technologies Japan K.K.
 
PDF
UnityのクラッシュをBacktraceでデバッグしよう!
Unity Technologies Japan K.K.
 
PDF
Unityで始めるバーチャルプロダクション
Unity Technologies Japan K.K.
 
PDF
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
Unity Technologies Japan K.K.
 
PDF
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
Unity Technologies Japan K.K.
 
PDF
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
Unity Technologies Japan K.K.
 
PDF
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
Unity Technologies Japan K.K.
 
PDF
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
Unity Technologies Japan K.K.
 
PDF
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
Unity Technologies Japan K.K.
 
PDF
「原神」におけるコンソールプラットフォーム開発
Unity Technologies Japan K.K.
 
PDF
FANTASIANの明日使えない特殊テクニック教えます
Unity Technologies Japan K.K.
 
PDF
インディーゲーム開発の現状と未来 2021
Unity Technologies Japan K.K.
 
PDF
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
Unity Technologies Japan K.K.
 
PDF
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Unity Technologies Japan K.K.
 
PDF
徹底解説 Unity Reflect【開発編 ver2.0】
Unity Technologies Japan K.K.
 
PDF
徹底解説 Unity Reflect【概要編 ver2.0】
Unity Technologies Japan K.K.
 
PDF
Unityティーチャートレーニングデイ -認定プログラマー編-
Unity Technologies Japan K.K.
 
PDF
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
Unity Technologies Japan K.K.
 
PDF
Unityティーチャートレーニングデイ -認定アソシエイト編-
Unity Technologies Japan K.K.
 
PDF
今だから聞きたい!Unity2017/18ユーザーのためのUnity2019 LTS基礎知識
Unity Technologies Japan K.K.
 
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
Unity Technologies Japan K.K.
 
UnityのクラッシュをBacktraceでデバッグしよう!
Unity Technologies Japan K.K.
 
Unityで始めるバーチャルプロダクション
Unity Technologies Japan K.K.
 
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
Unity Technologies Japan K.K.
 
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
Unity Technologies Japan K.K.
 
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
Unity Technologies Japan K.K.
 
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
Unity Technologies Japan K.K.
 
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
Unity Technologies Japan K.K.
 
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
Unity Technologies Japan K.K.
 
「原神」におけるコンソールプラットフォーム開発
Unity Technologies Japan K.K.
 
FANTASIANの明日使えない特殊テクニック教えます
Unity Technologies Japan K.K.
 
インディーゲーム開発の現状と未来 2021
Unity Technologies Japan K.K.
 
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
Unity Technologies Japan K.K.
 
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Unity Technologies Japan K.K.
 
徹底解説 Unity Reflect【開発編 ver2.0】
Unity Technologies Japan K.K.
 
徹底解説 Unity Reflect【概要編 ver2.0】
Unity Technologies Japan K.K.
 
Unityティーチャートレーニングデイ -認定プログラマー編-
Unity Technologies Japan K.K.
 
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
Unity Technologies Japan K.K.
 
Unityティーチャートレーニングデイ -認定アソシエイト編-
Unity Technologies Japan K.K.
 
今だから聞きたい!Unity2017/18ユーザーのためのUnity2019 LTS基礎知識
Unity Technologies Japan K.K.
 

Recently uploaded (20)

PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 

【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能

  • 2. Tips and Tricks for Optimising Unity UI
  • 3. Andy Touch Product Content Evangelist, Unity Technologies
  • 6. In an Ideal World…
  • 7. …However, This Button Does Not Exist!
  • 8. Optimising UI is Case-By-Case Dependent •  Range of Platforms: Mobile, to Console, to VR. •  Range of Styles: 2D, 3D, Mixed •  Range of Genres: Racing, FPS, 2D Platformer, etc •  Not all advice will work in all use-cases! •  Always best to Profile and Test on target device.
  • 9. The Balance of UI Systems Flexibility Performance
  • 11. UI Batching Rules A UI Batch Happens When 2 or more Visual Components… •  Are on the same Canvas. •  Share the same Material. •  Share the same Sprite Asset. •  Have RectTransforms that are Co-Planar to each other (Same Z Pos) •  Are clipped by the same Mask.
  • 12. Frame Debugger and UI Profiler Demo!
  • 14. UI Shaders •  All Visual Elements: ‘UI/Default Shader’. •  Supports Masking, Clipping, Vertex Coloring etc •  Built-In Unity Shader Source Code: Unity Archive Page •  All Shader Source Code can be customised! •  Demo Time!
  • 15. Text Mesh Pro •  Advanced Text Customisation and Rendering System •  Very Popular Unity Asset Store Package •  Acquired by Unity Technologies in February 2017 •  Free to Download Today! •  Demo Time!
  • 16. The Rebuild Process •  UI Element Layout changes -> Element is set to ‘Dirty’. •  UI Element Graphic changes -> Element is set to ‘Dirty’. •  Rebuild Process: Recalculates the ‘Dirty’ components/objects. •  This can be seen in the Profiler as ‘Canvas.SendWillRenderCanvases’
  • 17. Unity UI - Source Code bitbucket.org/Unity-Technologies/ui
  • 18. UI Source Code – ‘Graphic.cs’
  • 19. UI Source Code – ‘Graphic.cs’
  • 20. UI Source Code – ‘Graphic.cs’
  • 21. UI Source Code – ‘Graphic.cs’
  • 22. Layout Components •  Vertical, Horizontal, Grid, Layout Element, etc •  Very useful for structuring UI and setting up UI elements in order. •  Child Order determines how the Layout is structured. •  Related RectTransform Changes -> Layout is set to ‘Dirty’. •  Layout is ‘Dirty’ -> Added to Rebuild Process
  • 23. UI Source Code – ‘LayoutGroup.cs’
  • 24. UI Source Code – ‘LayoutGroup.cs’
  • 25. UI Source Code – ‘LayoutGroup.cs’
  • 26. Layout Components •  Suggestions: •  Enable Layout when needed to be rebuilt. Disable when not needed. •  Smaller number of child elements being rebuilt; combine UI elements. •  Create own Layout Manager Script; Control ‘when’ Layout is updated. •  Object-Pooled Scroll List; Reuse elements as they are scrolled.
  • 27. Rebuild Process – Pixel Perfect •  When RectTransform’s move, they will snap to exact pixel edges. •  Pro: ‘Pixel Perfect’ visuals. •  Con: Very expensive for many moving elements.
  • 28. Rebuild Process – Animator •  ‘Animator’ on UI – for Buttons, Transitions, etc •  In ‘Graphic.cs’:
  • 29. Sub Canvases •  It is possible to add a ‘Canvas’ component to child UI of a Canvas. •  This will create a ‘Sub-Canvas’. •  Can be used to isolate Canvas rebuilds. •  A Sub-Canvas will: - Have its own independent settings (Such as Pixel Perfect) - Rebuild its child batches, when required. - Can enable and disable visibility of all child elements. •  Demo Time!
  • 30. Unity UI - Source Code bitbucket.org/Unity-Technologies/ui
  • 31. Unity UI – Best Practices Guide unity3d.com/learn/tutorials/topics/best-practices