我有多个空的游戏对象作为生成游戏对象的生成点,并且我希望破坏生成的游戏对象,如果要测试的条件为true,则希望在相同的生成点上实例化一个新对象。
我有2个单独的脚本,一个附加在生成点对象上,另一个用于其中具有条件的游戏管理员。
游戏管理器脚本上的条件:
public void checkword()
{
wordBuilded = displayer.text.ToString();
LetterTiles[] tiles = FindObjectsOfType<LetterTiles>();
foreach (LetterTiles item in tiles)
{
if (txtContents.Contains(wordBuilded))
{
if (item.gameObject.CompareTag("clicked"))
{
Destroy(item.gameObject);
FindObjectOfType<letterSpawner>().refresh();
}
}
else
{
if (item.gameObject.CompareTag("clicked"))
item.GetComponent<Button>().interactable = true;
}
}
}
附加到生成点对象的脚本,用于实例化对象
using UnityEngine;
public class letterSpawner : MonoBehaviour {
public GameObject[] letterTiles;
GameObject tiles;
Vector3 scale = new Vector3(0.8f, 0.8f, 0);
void Start () {
refresh();
}
public void refresh()
{
int rand = Random.Range(0, letterTiles.Length);
tiles = Instantiate(letterTiles[rand], transform.position, Quaternion.identity);
tiles.transform.SetParent(gameObject.transform);
tiles.transform.localScale = scale;
}
}
答案 0 :(得分:0)
您可以通过对现有内容进行一些小的更改来实现此目的,首先将刷新功能更改为此功能
public static String Eliminate(String input)
{
char[] chrArray = input.toCharArray();
String letter ="";
for (char value:chrArray){
if (letter.indexOf(value.toLowerCase()) == -1 && letter.indexOf(value.toUpperCase()) == -1){
letter += value;
}
}
return letter;
}
还在同一文件中添加另一个默认文件,该文件使用您拥有的默认值调用该文件
public void refresh(Vector3 position)
{
int rand = Random.Range(0, letterTiles.Length);
tiles = Instantiate(letterTiles[rand], position, Quaternion.identity);
tiles.transform.SetParent(gameObject.transform);
tiles.transform.localScale = scale;
}
,然后在您的public void refresh()
{
refresh(transform.position);
}
函数中
checkword
应该为您做