unity oncanvas update event code example

Example: unity recttransform resize event

using UnityEngine;
 using UnityEngine.UI;
 
 namespace FeelFreeToBorrowThisCode
 {
     [RequireComponent(typeof(HorizontalLayoutGroup))]
     public class ResponsiveColumns : MonoBehaviour
     {
         RectTransform _leftSide;
         RectTransform _rightSide;
         RectTransform _column2;
         bool _vertical = true;
 
         void Start()
         {
             RectTransform rtrans = (RectTransform)transform;
             _leftSide  = (RectTransform)rtrans.GetChild(0);
             _rightSide = (RectTransform)rtrans.GetChild(1);
             _column2 = (RectTransform)_leftSide.GetChild(1);
 
             UpdateLayout();
         }
 
         void OnRectTransformDimensionsChange()
         {
             UpdateLayout();
         }
 
         void UpdateLayout()
         {
             if (_leftSide == null) return;
 
             if (Screen.width > Screen.height)
             {
                 if (_vertical)
                 {
                     _column2.SetParent(_rightSide);
                     _rightSide.gameObject.SetActive(true);
                     _vertical = false;
                 }
             }
             else if (!_vertical)
             {
                 _column2.SetParent(_leftSide);
                 _rightSide.gameObject.SetActive(false);
                 _vertical = true;
             }
         }
     }
 }