2017-04-21 30 views
-2

在Unity中,我需要从.txt文件(如书)中获得UI文本对象显示。它需要像一本书一样工作,所以我只是将两个单独的UI Text对象并排起来,像页面一样,然后在下一页和上一页上使用箭头作为按钮。我需要解析一个.txt文件(我试图使用C-Strings,所以我会从.txt文件填充一个字符串数组,不知道这是否是最佳路径?)每300个字符,因为这是最大量这将适合缩小的小文本对象看起来像一本真正的书。unity .txt文件到cstring

所以我需要解析一个巨大的.txt文件,比如说10,000个字符作为例子,分成300个字符的组。然后,每个由300个字符组成的组将在其自己的数组中,以像页面一样行事。我已经能够在UI文本对象上显示.txt文件,但解析是个大问题。当用户点击下一个按钮时,在标题页之后,它将显示页面1和页面2等,等等。任何人都可以帮助或提供一个建议,我一个人在这个发展任何事情真的会有所帮助。

+5

您一定会找到答案,使用您最喜爱的搜索引擎。你不解析任何东西,你*阅读文件中的所有文本*,然后*拆分成特定大小的块*。这些都是非常基本的操作,并在很多网站和教程中解释。 –

+0

哇,这是如此启发我永远不会这样做。像你这样的人是堆栈溢出的新手避免它的原因。如何鼓励人们,而不是让他们感到愚蠢 – VRDeveloper

+0

评论并不是让任何人感到愚蠢,只是为了解释你将如何找到信息。我们不会为您编写代码,您的问题太宽泛,无法在此适用。您可以从帮助部分阅读如何询问以及适用的内容和不适用的内容。它会帮助你理解这个网站背后的想法是什么。它是获得有关特定编程问题的帮助,并且通常与您已经尝试过的某些方面有关。如果你想讨论,为此还有其他可用的网站。 –

回答

0

从这里(http://www.vbforums.com/showthread.php?777441-Split-String-into-multiple-strings-with-a-character-limit-w-out-splitting-words

翻译版本的C#服用。我相信它可以优化,但应该做的伎俩。

public static IList<string> ChunkText(string text, int characterLimit) 
{ 
    List<string> parts = new List<string>(); 

    while (text.Length > 0) 
    { 
     if (text.Length <= characterLimit) 
     { 
      parts.Add(text); 
      text = String.Empty; 
     } 
     else 
     { 
      int length = characterLimit; 
      while (char.IsLetter(text[length]) 
        && char.IsLetter(text[length - 1])) 
      { 
       length--; 
      } 

      parts.Add(text.Substring(0, length).Trim()); 
      text = text.Substring(length); 
     } 
    } 

    return parts; 
} 


static void Main() 
{ 
    string text = "The quick brown fox jumped over the lazy dog."; 
    IList<string> parts = ChunkText(text, 10); 
    foreach (string part in parts) 
    { 
     Console.WriteLine(part); 
    } 

    Console.ReadLine(); 
} 
+0

感谢您的帮助,我会尝试一下。 – VRDeveloper