/// <summary>
/// Process the raw text, called when something changes.
/// </summary>
void ProcessText()
{
mChanged = true;
hasChanged = false;
mLastText = mText;
mProcessedText = mText;
if (TranslateReturn)
{
mProcessedText = mText.Replace("\\n", "\n");
}
if (mPassword)
{
string hidden = "";
if (mShowLastChar)
{
for (int i = 0, imax = mProcessedText.Length - 1; i < imax; ++i)
{
hidden += "*";
}
if (mProcessedText.Length > 0)
{
hidden += mProcessedText[mProcessedText.Length - 1];
}
}
else
{
for (int i = 0, imax = mProcessedText.Length; i < imax; ++i)
{
hidden += "*";
}
}
mProcessedText = mFont.WrapText(hidden, mMaxLineWidth / cachedTransform.localScale.x,
mMaxLineCount, false, UIFont.SymbolStyle.None);
}
else if (mMaxLineWidth > 0)
{
mProcessedText = mFont.WrapText(mProcessedText, mMaxLineWidth / cachedTransform.localScale.x, mMaxLineCount, mEncoding, mSymbols, mSpacingX);
}
else if (mMaxLineCount > 0)
{
mProcessedText = mFont.WrapText(mProcessedText, 100000f, mMaxLineCount, mEncoding, mSymbols, mSpacingX);
}
mSize = !string.IsNullOrEmpty(mProcessedText) ? mFont.CalculatePrintedSize(mProcessedText, mEncoding, mSymbols, mSpacingX, mSpacingY, TranslateReturn) : Vector2.one;
float scale = cachedTransform.localScale.x;
mSize.x = Mathf.Max(mSize.x, (mFont != null && scale > 1f) ? lineWidth / scale : 1f);
mSize.y = Mathf.Max(mSize.y, 1f);
}