【问题标题】:UI Text multiline uneven alignmentUI 文本多行不均匀对齐
【发布时间】:2016-05-17 05:09:47
【问题描述】:

文本是一个包含未定义字数的字符串。对齐方式应该是这样的:

        The text is starting from here
    then when the line is over it
goes to the next line etc.

是否可以在 Unity 中使用 UI 组件以这种方式对齐文本?

【问题讨论】:

  • 据我所知,不,您必须编写一个脚本,在其中为您的文本添加空格
  • 不幸的是,答案是否定的。这非常晦涩难懂!只是为了记录,您可以使用 RenderTexture 来实现,将其拆分并滑动 :)
  • 请注意,如果您对此进行谷歌搜索,提到的解决方案包括使用 RenderTexture。如果你是初学者,那太难了。
  • 只是 FTR 另一个想法,理论上,是在 UI 上使用多个摄像头并替换文本框的条带!我想这会奏效。
  • 即使 RederTexture 应该可以工作,但它似乎做得过火了。

标签: user-interface text unity3d textbox


【解决方案1】:

不,没有办法内置。

请注意,Unity提供“文本长度”功能 - 例如 iOS 提供

我真的根本想不到要找出“它在哪里换行”一条线。也许,您可以逐个迭代每个字符,一次一个字符地增加字符串,当宽度停止增加时,您知道,它已经换行了。 (用.renderer.bounds.size.x获取宽度)

我可能会鼓励你说三个 UI.Text 并分开你的字符串。简单地说,将字符串分成 50 个字符(停在一个空格处)或七个单词的块。 (它们的长度不会完全相同,但没关系。)

注意

如果您是新的 Unity 程序员或爱好者,解决此类问题的通常方法是

“使用资产!”

某个地方的某个人可能已经编写了您需要的程序。因此,开始在谷歌上搜索“免费资产,围绕形状环绕文本”或类似内容。通常,向制作此类包裹的人发送电子邮件是值得的,而且他们通常知道某些东西可以满足您的需求,如果他们不知道的话。

例子..http://forum.unity3d.com/threads/text-box.124906/

我通过谷歌搜索unity3d text utility wrap around a shape很容易找到


这里有一些代码可以将一长行合理的文本拆分为若干行,长度限制为 50 个字符。请注意,文字必须“合理”,不能有任何荒谬的长词等。

string wholeSentence = "Your whole sentence here ... goes on and on.";

List<string> words = new List<string>(
  wholeSentence
  .Split(new string[] { " " },
  StringSplitOptions.RemoveEmptyEntries)
  );

List<string> finalLines = new List<string>();

int count = 0;
string nextLine = "";
foreach (word w in words)
  {
  nextLine = nextLine + w + " ";
  count += w.Length;
  if (count>50)
   {
   finalLines.Add(nextLine);
   count=0;
   nextLine = "";
   }
  }

if (nextLine!="") finalLine.Add(nextLine);

这将为您提供List“finalLines”中的所有行!干杯

【讨论】:

  • 每个人都有一个漂亮的 Superbowl50 !
  • 我可以想到一些东西,但不一定是好方法。考虑到每一行都有 x 个字符,首先将原始字符串分成 x 个字符的子字符串,确保最后一个单词没有被切到中间(如果这样放在下一行)。反转字符串数组,因此最后一个是第一个索引。迭代数组,每个索引为一行,索引用于推入起点。然后,您可以乘以索引来推动不仅仅是 i。
  • 感谢您的全面回答!这项资产确实正是我所要求的。对我来说,拆分字符串并将其放置在单独的文本框中就足够了。干杯!
猜你喜欢
  • 2014-11-20
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 2017-05-25
  • 1970-01-01
  • 2016-04-24
相关资源
最近更新 更多