Unity游戏 - 只有赋值,调用,递增,递减,等待和新对象表达式才能用作语句

时间:2018-01-11 10:18:15

标签: c# unity3d

对于我的游戏我在我的塔防游戏中创建了一个预制件,创建了一个带有工作按钮,文本等的商店面板。如果玩家有塔,我有一个公共场所,如下图所示,名为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。

2 个答案:

答案 0 :(得分:2)

CloseShop是一种方法,您缺少括号:

FindObjectOfType<ShopScr>().CloseShop();

答案 1 :(得分:2)

CloseShop 是一种方法,因此您应该有一对尾随括号。

FindObjectOfType<ShopScr>().CloseShop();