【问题标题】:RandomName generator in Unity [closed]Unity中的随机名称生成器[关闭]
【发布时间】:2020-10-16 05:00:43
【问题描述】:

我遇到了一个烦人的小问题。我正在尝试在 Unity 中创建一个随机名称生成器,它必须显示在文本框中。 问题是它没有在文本框中显示任何内容,即使我遵循了几个示例,尝试了不同的选项但它没有工作。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class GeneratorG : MonoBehaviour
{
    public GameObject TextBox;
    public int TheNumber;
    public string TheGenre;
private void PickRandomFromList()
    {
        string[] genres = new string[] { "Rock", "Classic", "Jazz" };
        string randomName = genres[Random.Range(0, genres.Length)];
        TextBox.GetComponent<Text>().text = "" + randomName;
    }
}

在那之后我会添加更多的名字,但我首先会尝试让它发挥作用。你知道问题可能出在哪里吗?或者对于这个小任务,您有其他解决方案吗?

提前致谢!

【问题讨论】:

  • 你在哪里打电话给PickRandomFromList
  • 您需要将场景中的文本框对象附加到检查器中的文本框字段。
  • PickRandomFromList 只是函数的名称。我将它与文本框连接起来,并将文本框与 OnClick(0 中的按钮连接起来,但它没有找到该功能。
  • @ddcastrodd UnityEngine 定义了一个 Random 类,其中包括一个带有几个重载的 Range 静态方法。

标签: c# unity3d generator


【解决方案1】:

如果你只是想改变 GameObject TextBox 的文本,你可以把它放在最上面

public Text TextBox;

之后,您应该可以使用以下命令进行更改:

string randomName = genres[UnityEngine.Random.Range(0, genres.Length)];
TextBox.text = " " + randomName;

还要确保您已在检查器字段中设置了 TextBox,即您的脚本当前所在的位置。

【讨论】:

  • 这永远不会选择“Jazz”——它应该是UnityEngine.Random.Range(0, genres.Length)
  • 哦,我是从我的其他项目之一复制的,这就是为什么我认为它是正确的。但是我好像需要修复一些东西,谢谢你的帮助XD
  • 是的,它没有选择它,但它有效。感谢你们俩! :) :P
【解决方案2】:

仅从这段代码 sn-p 中,我不知道是什么导致了这种情况,但这里有一些你应该检查的东西。 1-检查您是否通过统一编辑器引用了要在其中显示随机名称的文本框。 2-检查您是否通过统一编辑器在生成按钮上引用了此函数,以便在单击时调用它。

【讨论】:

  • 呵呵,上次修改后我也忘了修复参考xD。谢谢!
  • 它发生的频率比你想象的要多。我很高兴能帮上忙。
猜你喜欢
  • 2014-11-15
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 2014-10-16
  • 2021-01-01
相关资源
最近更新 更多