布尔值不能在多个对象上设置

本文关键字:对象 设置 不能 布尔值 | 更新日期: 2023-09-27 18:08:55

又到了考试的时间了,所以我在这里又遇到了一些小问题,我的代码

我的目标是,能够在buttonpress上切换块(工作绝对很好),现在我添加了一个触发器,它将设置布尔值为false,所以我不能再移动这些块了。这个也管用……但只在最后一个集合块我想移动

i used (as normal?):

movingBlocks = GameObject.Find("SwitchableCube").GetComponent<MovingBlocks>();

来访问我需要切换的脚本。我试着通过函数改变变量,简单地改变它。在Unity或c#中是否存在不允许在多个对象中设置单个变量的内容?

谢谢你的帮助

(如果我错过了解决方案张贴的任何线程,我很抱歉,但我真的不确定我在搜索中必须涵盖的内容)

编辑:void OnTriggerEnter(Collider other) { if (other.CompareTag("DeadZone")) { movingBlocks.canSwitch = false; Debug.Log("Did enter"); Debug.Log (movingBlocks.canSwitch); } } void OnTriggerExit() { movingBlocks.canSwitch = false; Debug.Log("probably set it on true again...without any reason"); } 这就是现在改变变量的代码

布尔值不能在多个对象上设置

Find只返回一个对象,而不是多个。尝试使用FindObjectsOfType

MovingBlocks[] movingBlocks = FindObjectsOfType<MovingBlocks>();

这也意味着您需要遍历所有这些变量以更改所有这些变量的canSwitch变量。

foreach (MovingBlocks m in movingBlocks)
     m.canSwitch = false;