UNITY-使游戏对象不活跃

时间:2018-11-26 23:59:54

标签: c# visual-studio unity3d button

我有一个游戏对象,它是按钮(称为图块),单击该按钮时它将处于非活动状态,并且需要测试一个条件,如果条件为true,则按钮将被销毁,但是如果按钮为false,则按钮将返回保持其活动状态。

我的游戏管理器脚本(条件):

public void checkword()
 {
     wordBuilded = displayer.text.ToString();

     if (txtContents.Contains(wordBuilded))
     {
         Debug.Log(wordBuilded + " Is on the list");
         wordScore++;
         Debug.Log(wordScore);
     }
     else
     {        
         Debug.Log("Someting is wrong..");
         FindObjectOfType<LetterTiles>().tileStatus();
     }

 }

在“我的按钮(平铺)”脚本(按钮上的脚本)上:

public void letterClick()
 {
     gameManager.currentWord += letter;
     gameObject.SetActive(false);

 }

 public void tileStatus()
 {
    gameObject.SetActive(true);
 }

1 个答案:

答案 0 :(得分:0)

停用对象后,Unity将无法使用FindObjectOfType找到它。

在禁用它之前在游戏管理器中保留对对象[按钮]的本地引用,或者以其他方式隐藏按钮。

由于使用的是按钮,因此可以使用按钮的interactable属性将其禁用(如果要隐藏它,则将禁用的颜色更改为透明),例如:

gameobject.GetComponent<Button>().interactable = false;