2017-06-27 25 views
0

Unityでは、最初のオブジェクトの長さに基づいて別のテキストオブジェクトの隣にUIテキストオブジェクトを配置したいと思います。 「[Aladinn] says:hello World」のように。 "[Aladinn]"は(クリック可能な)最初のテキストであり、 "say:hello world"は2番目のテキストです。明らかに、最初のテキストの長さは変わることがあります。unity3Dのテキストオブジェクトの相対的位置付け

私は、その内容に基づいて、テキストボックスの長さを設定するには、いくつかの方法を見つけましたが、それらを別々のオブジェクトを維持しながら、最初のテキストの最後に2番目のテキストの開始を添付する方法はありますか?

答えて

0

あなたは、ドキュメントページ上の記述は、超便利ではありませんが、この値はText#preferredWidth

を探している「というテキストのこのビットがになりたいんどのくらい?」 PreferredHeightは、高さを除いて同じです。

他のオブジェクトのテキストがどこで終わるかを調べるには、Textコンポーネントを取得してその好みの幅を調べる必要があります。サイズはピクセルで、キャンバスオブジェクトはほぼ確実にあなたがスケールでいたずらなことをしていない限り、シーンのサイズも同様です)。

は私がマウスオーバーツールチップは、それが所望の比率に達するまで、様々な幅と高さの値を試すことで、素敵に見えるようにone of my projectsでこれを使用しています。 (望ましい高さを考慮に現在の幅を取得していることを前提としながら、適切な幅は、単一の行に表示された文字列を持って望んでいることは、一種の複雑なのですが、それは適切な幅と高さが一定のものを想定しているという事実に関係していますラインラップは所望の高さに含まれる)。

0

この問題の説明によれば、2つの別々のテキストオブジェクトを使用する代わりに、スクリプトを使用してテキストの文字列を変更することをお勧めします。

これが問題のあなたの説明のための罰金のようになります。

public string name; 
public string flavorText; 
public Text textUIComponnent; 

その後、どこかのコードでは、スタートの内部例えば:

void Start { 
textUIComponnent.text = name + " " + flavorText; 
[...] 
} 
関連する問題