我想销毁一个预制件,但不能。在游戏中,有一种张口,黑色方块是玩家必须在其中插入正确牙齿的空间。张口中有14个空格,每个空格代表1分。因此,如果玩家将正确的牙齿放在正确的位置,他会得到1分。然后,当他放下所需的所有牙齿时,必须转到该红色按钮并按退格键。如果一切正确,则会激活一条祝贺消息,并破坏预制件,并在游戏中生成另一种情况。
但是,如果他在错误的位置放错了牙齿,则DenteCerto是错误的,并且如果玩家转到红色按钮并按退格键,我也想破坏预制件,但是这次他什么也没得分点,然后在游戏中生成另一种情况。
第一种情况运行良好。第二个是'。这行代码有效:
{
public ValidadorEspaço1[] espaços;
private GameController gameController;
private GameObject controller;
// Start is called before the first frame update
void Start()
{
controller = GameObject.FindGameObjectWithTag("Controller");
gameController = controller.GetComponent<GameController>();
}
// Update is called once per frame
public void Contar_Espaços()
{
gameController.contadorPontos = 0;
for (int i = 0; i <= 13; i++)
{
if (espaços[i].DenteCerto)
{
gameController.contadorPontos++;
}
}
if (gameController.contadorPontos == 14)
{
gameController.CasosResolvidos++;
Destroy(this.gameObject);
}
}
}
但是如果DenteCerto为假,我也想破坏预制件,但这是行不通的。即使gameController.contadorPontos = 0,它也会破坏预制件:
for (int i = 0; i <= 13; i++)
{
if (espaços[i].DenteCerto)
{
gameController.contadorPontos++;
}
if (espaços[i].DenteCerto == false)
{
Destroy(this.gameObject);
}
}
我在此脚本中将DenteCerto设置为false:
public class ValidadorEspaço1 : MonoBehaviour
{
private Transform ColliderTrans;
private PlayerController Player;
public bool ItemEmCima = false;
private GameObject EmCima;
// Start is called before the first frame update
void Start()
{
ColliderTrans = GameObject.FindWithTag("PlayerCollider").GetComponent<Transform>();
Player = GameObject.FindWithTag("Player").GetComponent<PlayerController>();
}
public GameObject DenteResp;
private GameObject ItemNaMandibula;
public bool DenteCerto;
private void Update()
{
try
{
ItemNaMandibula = this.transform.GetChild(1).gameObject;
if (ItemNaMandibula.transform.tag == DenteResp.transform.tag)
{
DenteCerto = true;
}
if (ItemNaMandibula.transform.tag != DenteResp.transform.tag)
{
DenteCerto = false;
print(DenteCerto);
}
}
catch (Exception ex)
{
if (DenteResp.transform.tag == "Vazio" && !ItemEmCima)
{
DenteCerto = true;
}
else
{
DenteCerto = false;
}
}
if (DenteResp.transform.tag == "Vazio" && ItemEmCima)
{
DenteCerto = false;
}
}
在这种情况下,如果DenteCerto为假,我只想破坏对象:
{
DenteCerto = false;
}
我不知道该怎么办。