布尔值不能在多个对象上设置
本文关键字:对象 设置 不能 布尔值 | 更新日期: 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;