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.
Members
| Member | Type | Description | 
|---|---|---|
| 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). | 
Methods
| Method | Type | Description | 
|---|---|---|
| GetParentScaler | static MaterialUIScaler (Transform transform) | Gets the relevant (parent) MaterialUIScaler from any given Transform. | 
Details
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.
