The MaterialUIScaler is a component designed to replace or compliment Unity’s CanvasScaler and help keep track of the scene’s scaling settings.
A MaterialUIScaler in the inspector.
|ScaleFactorChangeEvent||Delegate(float scaleFactor)||Used as event to call when scaling is changed.|
|OrientationChangeEvent||Delegate(Vector2 resolution)||Used as event to call when orientation is changed.|
|OnScaleFactorChange||ScaleFactorChangeEvent||Called when the scaling is changed.|
|OnOrientationChange||OrientationChangeEvent||Called when the orientation is changed.|
|targetCanvas||Canvas||The Canvas that the MaterialUIScaler is targeting.|
|targetScaler||CanvasScaler||The CanvasScaler for the Canvas that the MaterialUIScaler is targeting.|
|matchOrientationToScreen||bool||Should the CanvasScaler's reference resolution be swapped between portrait and landscape when the screen is?|
|scaleFactor||bool||The scale factor of the Canvas (unlike the CanvasScaler, this works in any scaling mode).|
|GetParentScaler||static MaterialUIScaler (Transform transform)||Gets the relevant (parent) MaterialUIScaler from any given Transform.|
Each root Canvas that contains MaterialUI elements will need to have a MaterialUIScaler attached, as it notifies the elements of changes in scaling in a performance-friendly way.
The ‘Match Orientation To Screen’ feature is useful when designing UIs with both portait and landscape orientations, as it will flip the x and y values of the CanvasScaler’s reference resolution (applicable only in ‘Scale with screen size’ mode) to match the screen’s orientation (but not the values themselves, to preserve scaling) when a change is detected. Unless you’re handling this yourself or otherwise modify the reference resolution, it’s a good idea to keep this enabled.
It is recommended to read the documentation on Scaling Practices.