如何将我的收藏品与随机生成器连接起来并使用单词列表在 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 提到的基本要素,您需要完成您想要完成的事情。如果有任何不清楚的地方,请告诉我。
我有一个随机词生成脚本:
...
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 提到的基本要素,您需要完成您想要完成的事情。如果有任何不清楚的地方,请告诉我。