【发布时间】:2021-01-26 12:49:51
【问题描述】:
所以我尝试使用已通过参数传递到 slot.GetComponent().level++ 的 compToGet 字符串;
upgradeFoundation() 将在按钮单击时调用。 并且实际上有很多具有类似功能的按钮(例如:upgradeTurret()、upgradeTurret2() 等) 这就是为什么我试图根据您单击的按钮更改 compToget 字符串的值并使用该新字符串以该新字符串的名称获取组件,但它似乎不能那样工作并且我不知道它会如何以任何其他方式工作,任何帮助将不胜感激。
public void upgradeFoundation()
{
float upgFoundationCost = slotGroup.transform.Find(slotName).gameObject.GetComponent<Slot>().upgFoundationCost;
Upgrade(upgFoundationCost, "Foundation");
}
public void Upgrade(float upgCost, string compToGet)
{
GameObject slot = slotGroup.transform.Find(slotName).gameObject;
if (inGameUIManagerScript.money >= upgCost)
{
Type compToGetType = Type.GetType(compToGet); //im not sure how to convert a string into a type
slot.GetComponent<compToGetType>().level++; //this is the error line saying im treating a var like a type
}
}
提前谢谢你。
【问题讨论】: