对于我的游戏我在我的塔防游戏中创建了一个预制件,创建了一个带有工作按钮,文本等的商店面板。如果玩家有塔,我有一个公共场所,如下图所示,名为hasTower。
public class CellScr : MonoBehaviour {
public bool isGround, hasTower = false;
稍后在脚本中,我有一个代码,如果hasTower = true,系统将从预制件中找到游戏对象并销毁(CloseShop)。
public void BuildTower(Tower tower) // From another script
{
GameObject tmpTower = Instantiate (TowerPref);
tmpTower.transform.SetParent (transform, false);
tmpTower.transform.position = transform.position;
tmpTower.GetComponent<TowerScr>().selfType = (TowerType)tower.type;
hasTower = true;
FindObjectOfType<ShopScr> ().CloseShop;
}
在Shop Script(另一个脚本)中,我有CloseShop的公共方法:
public void CloseShop()
{
Destroy(gameObject);
}
关闭我游戏中商店的橱窗。
还有另一个脚本Tower Script,bool决定玩家是否有塔。在ShopScr中,还可以根据您的金额建造塔楼。包括所有这些脚本会使问题太长,而且它们没有错误,因为它们工作正常。
这里的问题是公共bool不起作用,并且给出了我的错误:只有赋值,调用,递增,递减,等待和新对象表达式才能用作语句。
如何让游戏识别CloseShop的方法?
对不起,这可能是一个愚蠢的问题,但我最近刚开始编程,尤其是Unity。
答案 0 :(得分:2)
CloseShop
是一种方法,您缺少括号:
FindObjectOfType<ShopScr>().CloseShop();
答案 1 :(得分:2)
CloseShop 是一种方法,因此您应该有一对尾随括号。
FindObjectOfType<ShopScr>().CloseShop();