用unity制作塔防游戏(模仿siki学院的教程视频制作,但是我的出现了问题),每个炮塔都有一个升级(Upgarde)按钮和一个拆卸(Destroy)按钮,如果将其中一个炮塔拆卸,其他炮塔的升级按钮均失效(即不能升级),拆卸按钮仍然可以正常使用,感觉可能是代码的问题。我想要的是每个炮塔升级一次后该炮塔的升级按钮失效(即每个炮塔只能升级一次),拆卸按钮可以正常使用,其余未升级的炮塔的升级按钮也可以正常使用
使用的unity的版本是2017.2.0f3,使用vs2019编写代码(c#),下面附上相关代码:
隐藏button相关
IEnumerator HideUpgardeUI()
{
upgradeCanvasAnimator.SetTrigger("Hide");
//upgradeCanvas.SetActive(false);
yield return new WaitForSeconds(0.2f);
upgradeCanvas.SetActive(false);
}
public void OnUpgradeButtonDown()
{
selectedMapCube.UpgradeTurret();
//HideUpgardeUI();
StartCoroutine(HideUpgardeUI());
}
public void OnDestroyButtonDown()
{
selectedMapCube.DestroyTurret();
//HideUpgardeUI();
StartCoroutine(HideUpgardeUI());
}
升级和拆卸的方法:
public void UpgradeTurret()
{
if (isUpgraded == true) return;//已经升级过了
Destroy(turretGo);
isUpgraded = true;
turretGo = GameObject.Instantiate(turretData.turretUpgradedPrefab, transform.position, Quaternion.identity);
}
public void DestroyTurret()
{
Destroy(turretGo);
isUpgraded = false;
//isUpgraded = true;
turretGo = null;
turretData = null;
}
求解