/// <summary>
        /// Function to add a new sub text object.
        /// </summary>
        /// <param name="textComponent"></param>
        /// <param name="materialReference"></param>
        /// <returns></returns>
        public static TMP_SubMeshUI AddSubTextObject(TextMeshProUGUI textComponent, MaterialReference materialReference)
        {
            GameObject go = new GameObject("TMP UI SubObject [" + materialReference.material.name + "]", typeof(RectTransform));

            go.transform.SetParent(textComponent.transform, false);
            go.layer = textComponent.gameObject.layer;

            RectTransform rectTransform = go.GetComponent <RectTransform>();

            rectTransform.anchorMin = Vector2.zero;
            rectTransform.anchorMax = Vector2.one;
            rectTransform.sizeDelta = Vector2.zero;
            rectTransform.pivot     = textComponent.rectTransform.pivot;

            TMP_SubMeshUI subMesh = go.AddComponent <TMP_SubMeshUI>();

            subMesh.m_canvasRenderer = subMesh.canvasRenderer;
            subMesh.m_TextComponent  = textComponent;

            subMesh.m_materialReferenceIndex = materialReference.index;
            subMesh.m_fontAsset         = materialReference.fontAsset;
            subMesh.m_spriteAsset       = materialReference.spriteAsset;
            subMesh.m_isDefaultMaterial = materialReference.isDefaultMaterial;
            subMesh.SetSharedMaterial(materialReference.material);

            return(subMesh);
        }
        public static TMP_SubMeshUI AddSubTextObject(TextMeshProUGUI textComponent, MaterialReference materialReference)
        {
            GameObject gameObject = new GameObject("TMP UI SubObject [" + materialReference.material.name + "]", new Type[]
            {
                typeof(RectTransform)
            });

            gameObject.transform.SetParent(textComponent.transform, false);
            gameObject.layer = textComponent.gameObject.layer;
            RectTransform component = gameObject.GetComponent <RectTransform>();

            component.anchorMin = Vector2.zero;
            component.anchorMax = Vector2.one;
            component.sizeDelta = Vector2.zero;
            component.pivot     = textComponent.rectTransform.pivot;
            TMP_SubMeshUI tmp_SubMeshUI = gameObject.AddComponent <TMP_SubMeshUI>();

            tmp_SubMeshUI.m_canvasRenderer         = tmp_SubMeshUI.canvasRenderer;
            tmp_SubMeshUI.m_TextComponent          = textComponent;
            tmp_SubMeshUI.m_materialReferenceIndex = materialReference.index;
            tmp_SubMeshUI.m_fontAsset         = materialReference.fontAsset;
            tmp_SubMeshUI.m_spriteAsset       = materialReference.spriteAsset;
            tmp_SubMeshUI.m_isDefaultMaterial = materialReference.isDefaultMaterial;
            tmp_SubMeshUI.SetSharedMaterial(materialReference.material);
            return(tmp_SubMeshUI);
        }