Unityは、Textコンポーネントのテキスト幅メソッドを取得します

最初にTextにContentSizeFitterコンポーネントを追加し、次に[Horizo​​ntalFit]プロパティを[PreferredSize]として選択します。(この代表者は実際の幅に適応します)

この時点で、RectTransformのWidthプロパティが灰色になっていることがわかります。表示されるテキストコンテンツを変更してみると、テキストの幅がテキストの長さに応じて自動的に変更されます。

このとき、スクリプトで取得したRectTransformのsizeDelta.xは、このときのテキストの幅になります。シーンに追加してテキストコンテンツを変更する場合は、最初にContentSizeFitterのSetLayoutHorizo​​ntalを呼び出す必要がありますこれにより、幅がリアルタイムで更新されます。そうしないと、幅が誤って取得される可能性があります。

this.fitter.SetLayoutHorizontal();
RectTransform rect = this.text.GetComponent<RectTransform>();
Debug.Log("width is " + rect.sizeDelta.x);

注意すべき点の1つは、正しい幅を取得する場合は、テキストノードとそのすべての祖先ノードのアクティブな属性がtrueであることを確認する必要があります。そうでない場合、幅は0になります。

おすすめ

転載: blog.csdn.net/shaobing32/article/details/122970292