如何将我的收藏品与随机生成器连接起来并使用单词列表在 UNITY 2D 中生成

How to connect my collectable items with the random generator and use a list of words for generating in UNITY 2D

我有一个随机词生成脚本:

...

public TextMeshPro largeText;

public void BtnAction()
{
    CreateRandomString();
}

private void CreateRandomString(int stringLength = 10)
{
    int _stringLength = stringLength - 1;
    string randomString = "";
    string[] characters = new string[] { "A", "B", "C", "D" };
    for (int i = 0; i<= _stringLength; i++)
    {
        randomString = randomString + characters[Random.Range(0, characters.Length)];
    }
    largeText.text = randomString;
}

... 在我的游戏中,玩家必须收集我用收藏品标签制作的信件,以便在库存系统中收集。

...

private void OnTriggerEnter2D(Collider2D 其他) {

    if(other.CompareTag("Collectable"))
    {
        string inventoryType = other.gameObject.GetComponent<Collectable>().inventoryType;
        print("We have collected a:"+ inventoryType);

        inventory.Add(inventoryType);
        print("Inventory length:" + inventory.Count);
        Destroy(other.gameObject);

        string wordType = other.gameObject.GetComponent<Collectable>().inventoryType;
    }
}

...

我想要代替:

string[] characters = new string[] { "A", "B", "C", "D" };

来自收集到的字母的字符串。

之后,从现有的单词列表中生成一个单词。

我该怎么做?

在您的 OnTriggerEnter 脚本中,您可以像这样将字母存储在列表中,

//Instantiate your List
public List<string> mylist = new List<string>();

//Add the letters to your List 
mylist.Add(other.gameObject.GetComponent<Collectable>().inventoryType);

然后你必须将 List 引用到你的其他生成随机字符串的函数(我假设你知道如何做到这一点,我不能给你一个具体的方法,因为我不知道安排你这边)。如果这两个功能都在一个脚本中就很容易了。

如果函数在两个不同的脚本中,您必须在检查器中将带有第一个脚本的游戏对象引用到第二个脚本,然后

public GameObject GameObject_with_your_first_Script;
......


firstScriptClassName myScript = GameObject_with_your_first_Script.GetComponent<fistScriptClassName>();

List referencedList = myScript.mylist;

希望这是 helpful.I 提到的基本要素,您需要完成您想要完成的事情。如果有任何不清楚的地方,请告诉我。