Show / Hide Table of Contents

Class SafePadding

Make the UnityEngine.RectTransform of object with this component driven into full stretch to its immediate parent, then apply padding according to device's reported UnityEngine.Screen.safeArea. Therefore makes an area inside this object safe for input-receiving components.

Then it is possible to make other objects safe area responsive by anchoring thier positions to this object's edges while being a child object.

Inheritance
System.Object
UnityEngine.Object
UnityEngine.Component
UnityEngine.Behaviour
UnityEngine.MonoBehaviour
UnityEngine.EventSystems.UIBehaviour
SafePadding
Implements
UnityEngine.UI.ILayoutSelfController
UnityEngine.UI.ILayoutController
Inherited Members
UnityEngine.EventSystems.UIBehaviour.Awake()
UnityEngine.EventSystems.UIBehaviour.Start()
UnityEngine.EventSystems.UIBehaviour.OnDisable()
UnityEngine.EventSystems.UIBehaviour.OnDestroy()
UnityEngine.EventSystems.UIBehaviour.IsActive()
UnityEngine.EventSystems.UIBehaviour.OnBeforeTransformParentChanged()
UnityEngine.EventSystems.UIBehaviour.OnTransformParentChanged()
UnityEngine.EventSystems.UIBehaviour.OnDidApplyAnimationProperties()
UnityEngine.EventSystems.UIBehaviour.OnCanvasGroupChanged()
UnityEngine.EventSystems.UIBehaviour.OnCanvasHierarchyChanged()
UnityEngine.EventSystems.UIBehaviour.IsDestroyed()
UnityEngine.MonoBehaviour.IsInvoking()
UnityEngine.MonoBehaviour.CancelInvoke()
UnityEngine.MonoBehaviour.Invoke(System.String, System.Single)
UnityEngine.MonoBehaviour.InvokeRepeating(System.String, System.Single, System.Single)
UnityEngine.MonoBehaviour.CancelInvoke(System.String)
UnityEngine.MonoBehaviour.IsInvoking(System.String)
UnityEngine.MonoBehaviour.StartCoroutine(System.String)
UnityEngine.MonoBehaviour.StartCoroutine(System.String, System.Object)
UnityEngine.MonoBehaviour.StartCoroutine(System.Collections.IEnumerator)
UnityEngine.MonoBehaviour.StartCoroutine_Auto(System.Collections.IEnumerator)
UnityEngine.MonoBehaviour.StopCoroutine(System.Collections.IEnumerator)
UnityEngine.MonoBehaviour.StopCoroutine(UnityEngine.Coroutine)
UnityEngine.MonoBehaviour.StopCoroutine(System.String)
UnityEngine.MonoBehaviour.StopAllCoroutines()
UnityEngine.MonoBehaviour.print(System.Object)
UnityEngine.MonoBehaviour.useGUILayout
UnityEngine.MonoBehaviour.runInEditMode
UnityEngine.Behaviour.enabled
UnityEngine.Behaviour.isActiveAndEnabled
UnityEngine.Component.GetComponent(System.Type)
UnityEngine.Component.GetComponent<T>()
UnityEngine.Component.TryGetComponent(System.Type, UnityEngine.Component)
UnityEngine.Component.TryGetComponent<T>(T)
UnityEngine.Component.GetComponent(System.String)
UnityEngine.Component.GetComponentInChildren(System.Type, System.Boolean)
UnityEngine.Component.GetComponentInChildren(System.Type)
UnityEngine.Component.GetComponentInChildren<T>(System.Boolean)
UnityEngine.Component.GetComponentInChildren<T>()
UnityEngine.Component.GetComponentsInChildren(System.Type, System.Boolean)
UnityEngine.Component.GetComponentsInChildren(System.Type)
UnityEngine.Component.GetComponentsInChildren<T>(System.Boolean)
UnityEngine.Component.GetComponentsInChildren<T>(System.Boolean, System.Collections.Generic.List<T>)
UnityEngine.Component.GetComponentsInChildren<T>()
UnityEngine.Component.GetComponentsInChildren<T>(System.Collections.Generic.List<T>)
UnityEngine.Component.GetComponentInParent(System.Type)
UnityEngine.Component.GetComponentInParent<T>()
UnityEngine.Component.GetComponentsInParent(System.Type, System.Boolean)
UnityEngine.Component.GetComponentsInParent(System.Type)
UnityEngine.Component.GetComponentsInParent<T>(System.Boolean)
UnityEngine.Component.GetComponentsInParent<T>(System.Boolean, System.Collections.Generic.List<T>)
UnityEngine.Component.GetComponentsInParent<T>()
UnityEngine.Component.GetComponents(System.Type)
UnityEngine.Component.GetComponents(System.Type, System.Collections.Generic.List<UnityEngine.Component>)
UnityEngine.Component.GetComponents<T>(System.Collections.Generic.List<T>)
UnityEngine.Component.GetComponents<T>()
UnityEngine.Component.CompareTag(System.String)
UnityEngine.Component.SendMessageUpwards(System.String, System.Object, UnityEngine.SendMessageOptions)
UnityEngine.Component.SendMessageUpwards(System.String, System.Object)
UnityEngine.Component.SendMessageUpwards(System.String)
UnityEngine.Component.SendMessageUpwards(System.String, UnityEngine.SendMessageOptions)
UnityEngine.Component.SendMessage(System.String, System.Object)
UnityEngine.Component.SendMessage(System.String)
UnityEngine.Component.SendMessage(System.String, System.Object, UnityEngine.SendMessageOptions)
UnityEngine.Component.SendMessage(System.String, UnityEngine.SendMessageOptions)
UnityEngine.Component.BroadcastMessage(System.String, System.Object, UnityEngine.SendMessageOptions)
UnityEngine.Component.BroadcastMessage(System.String, System.Object)
UnityEngine.Component.BroadcastMessage(System.String)
UnityEngine.Component.BroadcastMessage(System.String, UnityEngine.SendMessageOptions)
UnityEngine.Component.transform
UnityEngine.Component.gameObject
UnityEngine.Component.tag
UnityEngine.Object.GetInstanceID()
UnityEngine.Object.GetHashCode()
UnityEngine.Object.Equals(System.Object)
UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion)
UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform)
UnityEngine.Object.Instantiate(UnityEngine.Object)
UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Transform)
UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Transform, System.Boolean)
UnityEngine.Object.Instantiate<T>(T)
UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion)
UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform)
UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform)
UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform, System.Boolean)
UnityEngine.Object.Destroy(UnityEngine.Object, System.Single)
UnityEngine.Object.Destroy(UnityEngine.Object)
UnityEngine.Object.DestroyImmediate(UnityEngine.Object, System.Boolean)
UnityEngine.Object.DestroyImmediate(UnityEngine.Object)
UnityEngine.Object.FindObjectsOfType(System.Type)
UnityEngine.Object.DontDestroyOnLoad(UnityEngine.Object)
UnityEngine.Object.DestroyObject(UnityEngine.Object, System.Single)
UnityEngine.Object.DestroyObject(UnityEngine.Object)
UnityEngine.Object.FindSceneObjectsOfType(System.Type)
UnityEngine.Object.FindObjectsOfTypeIncludingAssets(System.Type)
UnityEngine.Object.FindObjectsOfType<T>()
UnityEngine.Object.FindObjectOfType<T>()
UnityEngine.Object.FindObjectsOfTypeAll(System.Type)
UnityEngine.Object.FindObjectOfType(System.Type)
UnityEngine.Object.ToString()
UnityEngine.Object.name
UnityEngine.Object.hideFlags
System.Object.Equals(System.Object, System.Object)
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
Namespace: MacacaGames.ViewSystem
Assembly: Macaca.ViewSystem.dll
Syntax
[DisallowMultipleComponent]
[ExecuteInEditMode]
[RequireComponent(typeof(RectTransform))]
public class SafePadding : UIBehaviour, ILayoutSelfController, ILayoutController
Remarks

Safe area defines an area on the phone's screen where it is safe to place your game-related input receiving components without colliding with other on-screen features on the phone. Usually this means it is also "visually safe" as all possible notches should be outside of safe area.

The amount of padding is a UnityEngine.Screen.safeArea interpolated into UnityEngine.RectTransform of root UnityEngine.Canvas found traveling up from this object.

It should be a direct child of top canvas, or deeper child of some similarly full stretch rect in order to look right, although in reality it just pad in the shape of UnityEngine.Screen.safeArea regardless of its parent rectangle size.

Properties

| Improve this Doc View Source

SafeAreaRelative

Already taken account whether should trust Notch Simulator or Unity's Device Simulator package.

Declaration
protected Rect SafeAreaRelative { get; }
Property Value
Type Description
UnityEngine.Rect

Methods

| Improve this Doc View Source

OnEnable()

Overrides

Declaration
protected override void OnEnable()
Overrides
UnityEngine.EventSystems.UIBehaviour.OnEnable()
| Improve this Doc View Source

OnRectTransformDimensionsChange()

Overrides

This doesn't work when flipping the orientation to opposite side (180 deg). It only works for 90 deg. rotation because that makes the rect transform changes dimension.

Declaration
protected override void OnRectTransformDimensionsChange()
Overrides
UnityEngine.EventSystems.UIBehaviour.OnRectTransformDimensionsChange()
| Improve this Doc View Source

SetPaddingValue(SafePadding.PerEdgeValues)

Declaration
public void SetPaddingValue(SafePadding.PerEdgeValues _edgeValues)
Parameters
Type Name Description
SafePadding.PerEdgeValues _edgeValues

Explicit Interface Implementations

| Improve this Doc View Source

ILayoutController.SetLayoutHorizontal()

Declaration
void ILayoutController.SetLayoutHorizontal()
| Improve this Doc View Source

ILayoutController.SetLayoutVertical()

Declaration
void ILayoutController.SetLayoutVertical()

Implements

UnityEngine.UI.ILayoutSelfController
UnityEngine.UI.ILayoutController
  • Improve this Doc
  • View Source
In This Article
Back to top Generated by DocFX