温馨提示:本文翻译自stackoverflow.com,查看原文请点击:c# - Bool variable doesn't update its status
c# unity3d

c# - Bool变量不会更新其状态

发布于 2020-06-04 15:24:05

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

VariabileBool脚本(在Child对象上):

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

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

查看更多

提问者
upstagesum
被浏览
6
Halil Cosgun 2020-03-20 20:18

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

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

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

我希望这是您搜索的答案。祝你今天愉快。


 public class LettoreVariabile : MonoBehaviour
 {
     public VariabileBool classeVariabile;

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