namespace UIWidgets.Examples { using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// Resize some elements for the mobile screens. /// public class TestMobile : MonoBehaviour { /// /// Resizables. /// [SerializeField] protected List Resizables = new List(); /// /// Horizontal splitters. /// [SerializeField] protected List HorizontalSplitters = new List(); /// /// Vertical splitters. /// [SerializeField] protected List VerticalSplitters = new List(); /// /// Layouts. /// [SerializeField] protected List Layouts = new List(); /// /// DefaultDPI. /// [SerializeField] protected float DefaultDPI = 96f; #if UNITY_ANDROID || UNITY_IOS /// /// Start this instance. /// protected void Start() { var ratio = Screen.dpi / DefaultDPI; foreach (var resizable in Resizables) { resizable.ActiveRegion *= ratio; } foreach (var splitter in HorizontalSplitters) { var width = Mathf.Max(splitter.minWidth, splitter.preferredWidth) * ratio; splitter.minWidth = width; splitter.preferredWidth = width; } foreach (var splitter in VerticalSplitters) { var height = Mathf.Max(splitter.minHeight, splitter.preferredHeight) * ratio; splitter.minHeight = height; splitter.preferredHeight = height; } foreach (var layout in Layouts) { var spacing = layout.Spacing; layout.Spacing = new Vector2(spacing.x, spacing.y * ratio * 2f); } } #endif } }