【问题标题】:Text Display Between multiple strings多个字符串之间的文本显示
【发布时间】:2020-04-27 13:07:02
【问题描述】:

当玩家无法猜出正确的值时,我会显示此文本。

if (guess < Joules)
{
    Joulestext.text = "Oops...entered less than minimum amount of Joules .";
}

但我希望在同一个文本字段中随机显示多个​​文本,例如这个弹出窗口或另一个说“尝试使用...”。我该怎么做?

【问题讨论】:

  • 创建一个消息数组,然后使用Random类你可以选择一个并在if (guess &lt; Joules)中显示它

标签: c# text display


【解决方案1】:

一种可能的解决方案是:创建一个消息数组并在必要时随机选择一个。

string[] messages = new string[] {"msg1", "msg2", .... "msgn"};
Random rnd = new Random();

if (guess < Joules)
{
    var index = rnd.Next(0, messages.Length);
    var msg = messages[index];
    Joulestext.text = msg;
}

【讨论】:

    【解决方案2】:

    使用 Linq 的简单解决方案:

    var messages = new List<string>
    {
        "message 1",
        "message 2",
        "message 3",
        "message 4",
        "message 5"
        //...
    };
    
    if (guess < Joules)
    {
        Joulestext.text = messages
            .OrderBy(m => Guid.NewGuid())
            .First();
    }
    

    为了随机化消息,它们只是由新的 Guid 排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多