Skip to content
Snippets Groups Projects
Select Git revision
  • JS-based-scroll-rendering
  • master default
  • Paul_Marius_Level
  • Paul_Marius_2
  • Paul_Marius
  • Andi_Mark
  • be-UnityWebView
  • gitignoreFrameitServer
  • ZimmerBSc
  • Bugfix_StageLoading
  • stages
  • MAZIFAU_Experimental
  • tsc/coneworld
  • tsc/fact-interaction
  • marcel
  • MaZiFAU_TopSort
  • mergeHelper
  • zwischenSpeichern
  • tempAndrToMaster
  • SebBranch
  • 3.0
  • v2.1
  • v2.0
  • v1.0
24 results

ContentSizeFitterMaxWidth.cs

Blame
  • ContentSizeFitterMaxWidth.cs 1017 B
    using UnityEngine;
    using UnityEngine.UI;
    
    [ExecuteAlways]
    [RequireComponent(typeof(ContentSizeFitter))]
    public class ContentSizeFitterMaxWidth : MonoBehaviour
    {
        public float maxWidth;
    
        RectTransform _rtfm;
        ContentSizeFitter _fitter;
        ILayoutElement _layout;
    
        void OnEnable()
        {
            _rtfm = (RectTransform)transform;
            _fitter = GetComponent<ContentSizeFitter>();
            _layout = GetComponent<ILayoutElement>();
        }
    
        void Update()
        {
            _fitter.horizontalFit = _layout.preferredWidth > maxWidth
                ? ContentSizeFitter.FitMode.Unconstrained
                : ContentSizeFitter.FitMode.PreferredSize;
    
            if (_layout.preferredWidth > maxWidth)
            {
                _fitter.horizontalFit = ContentSizeFitter.FitMode.Unconstrained;
                _rtfm.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, maxWidth);
            }
            else
                _fitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize;
        }
    
        void OnValidate() => OnEnable();
    }