Legacy Documentation: Version 4.6.2
Language: English
  • C#
  • JS
  • Boo

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

CanvasScaler

Namespace: UnityEngine.UI

/

Inherits from: EventSystems.UIBehaviour

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Switch to Manual

Description

The Canvas Scaler component is used for controlling the overall scale and pixel density of UI elements in the Canvas.

This scaling affects everything under the Canvas, including font sizes and image borders.

For a Canvas set to 'Screen Space - Overlay' or 'Screen Space - Camera', the Canvas Scaler UI Scale Mode can be set to Constant Pixel Size, Scale With Screen Size, or Constant Physical Size.

Using the Constant Pixel Size mode, positions and sizes of UI elements are specified in pixels on the screen. This is also the default functionality of the Canvas when no Canvas Scaler is attached. However, With the Scale Factor setting in the Canvas Scaler, a constant scaling can be applied to all UI elements in the Canvas.

Using the Scale With Screen Size mode, positions and sizes can be specified according to the pixels of a specified reference resolution. If the current screen resolution is larger then the reference resolution, the Canvas will keep having only the resolution of the reference resolution, but will scale up in order to fit the screen. If the current screen resolution is smaller than the reference resolution, the Canvas will similarly be scaled down to fit. If the current screen resolution has a different aspect ratio than the reference resolution, scaling each axis individually to fit the screen would result in non-uniform scaling, which is generally undesirable. Instead of this, the ReferenceResolution component will make the Canvas resolution deviate from the reference resolution in order to respect the aspect ratio of the screen. It is possible to control how this deviation should behave using the screenMatchMode setting.

Using the Constant Physical Size mode, positions and sizes of UI elements are specified in physical units, such as millimeters, points, or picas. This mode relies on the device reporting its screen DPI correctly. You can specify a fallback DPI to use for devices that do not report a DPI.

For a Canvas set to 'World Space' the Canvas Scaler can be used to control the pixel density of UI elements in the Canvas.

See Also: Canvas.

Variables

defaultSpriteDPI The pixels per inch to use for sprites that have a 'Pixels Per Unit' setting that matches the 'Reference Pixels Per Unit' setting.
dynamicPixelsPerUnit The amount of pixels per unit to use for dynamically created bitmaps in the UI, such as Text.
fallbackScreenDPI The DPI to assume if the screen DPI is not known.
matchWidthOrHeight Setting to scale the Canvas to match the width or height of the reference resolution, or a combination.
physicalUnit The physical unit to specify positions and sizes in.
referencePixelsPerUnit If a sprite has this 'Pixels Per Unit' setting, then one pixel in the sprite will cover one unit in the UI.
referenceResolution The resolution the UI layout is designed for.
scaleFactor Scales all UI elements in the Canvas by this factor.
screenMatchMode A mode used to scale the canvas area if the aspect ratio of the current resolution doesn't fit the reference resolution.
uiScaleMode Determines how UI elements in the Canvas are scaled.

Protected Functions

Handle Method that handles calculations of canvas scaling.
HandleConstantPhysicalSize Handles canvas scaling for a constant physical size.
HandleConstantPixelSize Handles canvas scaling for a constant pixel size.
HandleScaleWithScreenSize Handles canvas scaling that scales with the screen size.
HandleWorldCanvas Handles canvas scaling for world canvas.
SetReferencePixelsPerUnit Sets the referencePixelsPerUnit on the Canvas.
SetScaleFactor Sets the scale factor on the canvas.
Update Handles per-frame checking if the canvas scaling needs to be updated.

Inherited members

Variables

enabled Enabled Behaviours are Updated, disabled Behaviours are not.
animation The Animation attached to this GameObject (null if there is none attached).
audio The AudioSource attached to this GameObject (null if there is none attached).
camera The Camera attached to this GameObject (null if there is none attached).
collider The Collider attached to this GameObject (null if there is none attached).
collider2D The Collider2D component attached to the object.
constantForce The ConstantForce attached to this GameObject (null if there is none attached).
gameObject The game object this component is attached to. A component is always attached to a game object.
guiText The GUIText attached to this GameObject (null if there is none attached).
guiTexture The GUITexture attached to this GameObject (Read Only). (null if there is none attached).
hingeJoint The HingeJoint attached to this GameObject (null if there is none attached).
light The Light attached to this GameObject (null if there is none attached).
networkView The NetworkView attached to this GameObject (Read Only). (null if there is none attached).
particleEmitter The ParticleEmitter attached to this GameObject (null if there is none attached).
particleSystem The ParticleSystem attached to this GameObject (null if there is none attached).
renderer The Renderer attached to this GameObject (null if there is none attached).
rigidbody The Rigidbody attached to this GameObject (null if there is none attached).
rigidbody2D The Rigidbody2D that is attached to the Component's GameObject.
tag The tag of this game object.
transform The Transform attached to this GameObject (null if there is none attached).
useGUILayout Disabling this lets you skip the GUI layout phase.
hideFlags Should the object be hidden, saved with the scene or modifiable by the user?
name The name of the object.

Functions

BroadcastMessage Calls the method named methodName on every MonoBehaviour in this game object or any of its children.
CompareTag Is this game object tagged with /tag/?
GetComponent Returns the component of Type type if the game object has one attached, null if it doesn't.
GetComponentInChildren Returns the component of Type type in the GameObject or any of its children using depth first search.
GetComponentInParent Returns the component of Type type in the GameObject or any of its parents.
GetComponents Returns all components of Type type in the GameObject.
GetComponentsInChildren Returns all components of Type type in the GameObject or any of its children.
GetComponentsInParent Returns all components of Type type in the GameObject or any of its parents.
SendMessage Calls the method named methodName on every MonoBehaviour in this game object.
SendMessageUpwards Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour.
CancelInvoke Cancels all Invoke calls on this MonoBehaviour.
Invoke Invokes the method methodName in time seconds.
InvokeRepeating Invokes the method methodName in time seconds, then repeatedly every repeatRate seconds.
IsInvoking Is any invoke on methodName pending?
StartCoroutine Starts a coroutine.
StopAllCoroutines Stops all coroutines running on this behaviour.
StopCoroutine Stops all coroutines named methodName running on this behaviour.
GetInstanceID Returns the instance id of the object.
ToString Returns the name of the game object.
IsActive Returns true if the GameObject and the Component are active.
IsDestroyed Returns true if the native representation of the behaviour has been destroyed.

Protected Functions

Awake See MonoBehaviour.Awake.
OnBeforeTransformParentChanged See MonoBehaviour.OnBeforeTransformParentChanged.
OnCanvasGroupChanged See MonoBehaviour.OnCanvasGroupChanged.
OnDestroy See MonoBehaviour.OnDestroy.
OnDidApplyAnimationProperties See MonoBehaviour.OnDidApplyAnimationProperties.
OnDisable See MonoBehaviour.OnDisable.
OnEnable See MonoBehaviour.OnEnable.
OnRectTransformDimensionsChange See MonoBehaviour.OnRectTransformDimensionsChange.
OnTransformParentChanged See MonoBehaviour.OnRectTransformParentChanged.
OnValidate See MonoBehaviour.OnValidate.
Reset See MonoBehaviour.Reset.
Start See MonoBehaviour.Start.

Static Functions

print Logs message to the Unity Console (identical to Debug.Log).
Destroy Removes a gameobject, component or asset.
DestroyImmediate Destroys the object obj immediately. You are strongly recommended to use Destroy instead.
DontDestroyOnLoad Makes the object target not be destroyed automatically when loading a new scene.
FindObjectOfType Returns the first active loaded object of Type type.
FindObjectsOfType Returns a list of all active loaded objects of Type type.
Instantiate Clones the object original and returns the clone.

Operators

bool Does the object exist?
operator != Compares if two objects refer to a different object.
operator == Compares if two objects refer to the same.

Messages

Awake Awake is called when the script instance is being loaded.
FixedUpdate This function is called every fixed framerate frame, if the MonoBehaviour is enabled.
LateUpdate LateUpdate is called every frame, if the Behaviour is enabled.
OnAnimatorIK Callback for setting up animation IK (inverse kinematics).
OnAnimatorMove Callback for processing animation movements for modifying root motion.
OnApplicationFocus Sent to all game objects when the player gets or loses focus.
OnApplicationPause Sent to all game objects when the player pauses.
OnApplicationQuit Sent to all game objects before the application is quit.
OnAudioFilterRead If OnAudioFilterRead is implemented, Unity will insert a custom filter into the audio DSP chain.
OnBecameInvisible OnBecameInvisible is called when the renderer is no longer visible by any camera.
OnBecameVisible OnBecameVisible is called when the renderer became visible by any camera.
OnCollisionEnter OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider.
OnCollisionEnter2D Sent when an incoming collider makes contact with this object's collider (2D physics only).
OnCollisionExit OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider.
OnCollisionExit2D Sent when a collider on another object stops touching this object's collider (2D physics only).
OnCollisionStay OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider.
OnCollisionStay2D Sent each frame where a collider on another object is touching this object's collider (2D physics only).
OnConnectedToServer Called on the client when you have successfully connected to a server.
OnControllerColliderHit OnControllerColliderHit is called when the controller hits a collider while performing a Move.
OnDestroy This function is called when the MonoBehaviour will be destroyed.
OnDisable This function is called when the behaviour becomes disabled () or inactive.
OnDisconnectedFromServer Called on the client when the connection was lost or you disconnected from the server.
OnDrawGizmos Implement OnDrawGizmos if you want to draw gizmos that are also pickable and always drawn.
OnDrawGizmosSelected Implement this OnDrawGizmosSelected if you want to draw gizmos only if the object is selected.
OnEnable This function is called when the object becomes enabled and active.
OnFailedToConnect Called on the client when a connection attempt fails for some reason.
OnFailedToConnectToMasterServer Called on clients or servers when there is a problem connecting to the MasterServer.
OnGUI OnGUI is called for rendering and handling GUI events.
OnJointBreak Called when a joint attached to the same game object broke.
OnLevelWasLoaded This function is called after a new level was loaded.
OnMasterServerEvent Called on clients or servers when reporting events from the MasterServer.
OnMouseDown OnMouseDown is called when the user has pressed the mouse button while over the GUIElement or Collider.
OnMouseDrag OnMouseDrag is called when the user has clicked on a GUIElement or Collider and is still holding down the mouse.
OnMouseEnter OnMouseEnter is called when the mouse entered the GUIElement or Collider.
OnMouseExit OnMouseExit is called when the mouse is not any longer over the GUIElement or Collider.
OnMouseOver OnMouseOver is called every frame while the mouse is over the GUIElement or Collider.
OnMouseUp OnMouseUp is called when the user has released the mouse button.
OnMouseUpAsButton OnMouseUpAsButton is only called when the mouse is released over the same GUIElement or Collider as it was pressed.
OnNetworkInstantiate Called on objects which have been network instantiated with Network.Instantiate.
OnParticleCollision OnParticleCollision is called when a particle hits a collider.
OnPlayerConnected Called on the server whenever a new player has successfully connected.
OnPlayerDisconnected Called on the server whenever a player disconnected from the server.
OnPostRender OnPostRender is called after a camera finished rendering the scene.
OnPreCull OnPreCull is called before a camera culls the scene.
OnPreRender OnPreRender is called before a camera starts rendering the scene.
OnRenderImage OnRenderImage is called after all rendering is complete to render image.
OnRenderObject OnRenderObject is called after camera has rendered the scene.
OnSerializeNetworkView Used to customize synchronization of variables in a script watched by a network view.
OnServerInitialized Called on the server whenever a Network.InitializeServer was invoked and has completed.
OnTransformChildrenChanged This function is called when the list of children of the transform of the GameObject has changed.
OnTransformParentChanged This function is called when the parent property of the transform of the GameObject has changed.
OnTriggerEnter OnTriggerEnter is called when the Collider other enters the trigger.
OnTriggerEnter2D Sent when another object enters a trigger collider attached to this object (2D physics only).
OnTriggerExit OnTriggerExit is called when the Collider other has stopped touching the trigger.
OnTriggerExit2D Sent when another object leaves a trigger collider attached to this object (2D physics only).
OnTriggerStay OnTriggerStay is called once per frame for every Collider other that is touching the trigger.
OnTriggerStay2D Sent each frame where another object is within a trigger collider attached to this object (2D physics only).
OnValidate This function is called when the script is loaded or a value is changed in the inspector (Called in the editor only).
OnWillRenderObject OnWillRenderObject is called once for each camera if the object is visible.
Reset Reset to default values.
Start Start is called on the frame when a script is enabled just before any of the Update methods is called the first time.