Exemplo n.º 1
0
        public void Rebuild()
        {
            if (input.textComponent.enabled && checker.NeedRebuild())
            {
                //================================
                // fix bug for tmp
                // TMPの不具合で、正しく座標を設定されてなかったため、試しに対応する
                var rt   = input.textComponent.GetComponent <RectTransform>();
                var size = input.textComponent.GetPreferredValues();
                if (size.x < rt.rect.xMax)
                {
                    // textComponent の座標を更新
                    var pos = rt.anchoredPosition;
                    pos.x = 0;
                    rt.anchoredPosition = pos;

                    // caret の座標更新
                    var caret     = input.GetComponentInChildren <TMP_SelectionCaret>();
                    var caretRect = caret.GetComponent <RectTransform>();
                    caretRect.anchoredPosition = rt.anchoredPosition;
                }
                //==============================

                // HACK : 1フレーム無効にする
                // MEMO : 他にいい方法Rebuildがあれば対応する
                // LayoutRebuilder.ForceRebuildLayoutImmediate(); で試してダメでした
                input.textComponent.enabled = false;
                input.Rebuild(CanvasUpdate.LatePreRender);
                input.textComponent.SetAllDirty();
            }
            else
            {
                input.textComponent.enabled = true;
            }
        }
Exemplo n.º 2
0
 public void Rebuild()
 {
     if (checker.NeedRebuild())
     {
         input.Rebuild(CanvasUpdate.LatePreRender);
         input.textComponent.SetAllDirty();
     }
 }