Bool变量不会更新其状态

时间:2020-03-20 11:43:16

标签: c# unity3d

我遇到了问题...我创建了一个父项(EmptyGameObject)及其子项(导入的3D模型)。子对象具有布尔变量,如果它与障碍物(标记为“障碍”)相撞,则该变量会更改。我为父级创建了一个脚本,该脚本加载了bool变量VariabileBool classTest = cubo.GetComponentInChildren<VariabileBool>();,但是有一个问题... bool变量的值,当在子代脚本中更改的状态为状态时,不更新bool变量的值(变为true)...如何我可以解决这个问题吗?对不起,我的英语不好...

VariabileBool脚本(在子对象上):

public class VariabileBool : MonoBehaviour
{
    public bool variabile = true;
}

用于读取变量的父脚本:

public class LettoreVariabile : MonoBehaviour
{
    VariabileBool classeVariabile;
    public GameObject cube;
    private void Start()
    {
        classeVariabile = cube.GetComponentInChildren<VariabileBool>();
    }
    void Update()
    {

        Debug.Log(classeVariabile.variabile);
    }
}

img

我尝试更新Void Start()中bool的状态,但是不起作用... 一旦变量进入状态,它就不会改变...

1 个答案:

答案 0 :(得分:0)

您可以尝试通过这种方式从另一个对象访问VariabileBool对象;

  • 在场景中创建一个空的VariableBoolObject。
  • 将VariableBool类附加到VariableBoolObject。 (简单的拖放过程)
  • 在场景中创建第二个空的lettoVariable对象。然后将lettoVariable脚本附加到该对象。
  • 然后,打开您的场景,在场景层次中选择LettoreVariabile。将VariableBoolObject拖放到检查器中LettoreVariabile的classeVariabile区域。

    • 您可以通过这种方式访问​​其他对象的bool变量。

我希望这是您搜索的答案。祝你有美好的一天。


 public class LettoreVariabile : MonoBehaviour
 {
     public VariabileBool classeVariabile;

     void Update()
     {
         Debug.Log(classeVariabile. variabile);
     }
 }