0
我想在玩家每次進入新位置時顯示一種橫幅。這應該在屏幕的最左邊。我的問題是,我目前的解決方案在不同的分辨率下表現不一致。在更高的分辨率下,橫幅的位置比需要的位置更靠右。Unity3D - 在屏幕邊框顯示訊息
我也用了一段代碼每次顯示時正確定位文本。
public class AreaName : MonoBehaviour
{
private static AreaName instance;
void Start()
{
if (instance)
Destroy(this);
else
instance = this;
BannerBase = transform.FindChild("BannerBase").GetComponent<Image>();
NameDisplay = BannerBase.transform.FindChild("BannerText").GetComponent<Text>();
}
private Image BannerBase;
private Text NameDisplay;
public static void Display (string areatitle)
{
int width = TextWidth(instance.NameDisplay, areatitle);
instance.BannerBase.rectTransform.position = new Vector3(-305 + width, instance.BannerBase.transform.position.y, 0);
instance.NameDisplay.text = areatitle;
print(width);
}
private static int TextWidth (Text obj, string text)
{
int totalLength = 0;
Font myFont = obj.font; //chatText is my Text component
CharacterInfo characterInfo = new CharacterInfo();
char[] arr = text.ToCharArray();
foreach (char c in arr)
{
myFont.GetCharacterInfo(c, out characterInfo, obj.fontSize);
totalLength += characterInfo.advance;
}
return totalLength;
}
}
是否存在我正在監督的任何簡單錯誤?或者我只是瞭解Unity UI系統錯誤?
問題是橫幅已經結束。我認爲我將不得不根據文本的大小重新定位它。 –
是的,但是將部分標語放在屏幕外面是什麼感覺? 您可以將內容大小裝配工添加到您的文本,然後將圖像背景作爲一個孩子,然後將它適合文本大小。 請附上你有什麼和你想要達到什麼樣的形象,所以我可以幫你輕鬆。 – Vancete