c# - Unity GameObject.SetActive 不起作用
问题描述
我为我的游戏编写了一个脚本,通过 GameObject 控制游戏中的插槽。但该脚本无法激活或停用。一切都设置好了,我也尝试了另一个脚本,但它有效。“主”脚本没有。
这是代码:
// Update is called once per frame
void Update()
{
UpdateBools();
Crosshair();
Slots();
}
void UpdateBools()
{
isPaused = PauseMenu.GamePaused;
}
public void Crosshair()
{
//Not important
}
public void Slots()
{
if (database.Slot1 != nothing)
{
Slot1.SetActive(true);
Slot1Active = true;
}
else { Slot1.SetActive(false); }
if (database.Slot2 != nothing)
{
Slot2.SetActive(true);
Slot2Active = true;
}
else { Slot2.SetActive(false); }
if (database.Slot3 != nothing)
{
Slot3.SetActive(true);
Slot3Active = true;
}
else { Slot3.SetActive(false); }
if (database.Slot4 != nothing)
{
Slot4.SetActive(true);
Slot4Active = true;
}
else {
Slot1.SetActive(false);
Slot2.SetActive(false);
Slot3.SetActive(false);
Slot4.SetActive(false);
Slot1Active = false;
Slot2Active = false;
Slot3Active = false;
Slot4Active = false;
}
}
public void SlotPic()
{
//I erased this because stack overflow says: mostly code, add more details but I have every detail
}
它的工作原理是这样的:如果占用了一个库存槽,它应该被激活。为了测试,我添加了 ActivateEverything()。此外,插槽在激活时应该会改变其图片,但正如我所说,激活对象不起作用。对这项任务很重要的是 void Slots()。
解决方案
尝试在没有 if else 容器的情况下设置活动。检查您的游戏模式是否未暂停。
推荐阅读
- azure-data-factory-2 - 在 Azure 数据工厂中运行数据流比在 Azure SSIS 数据流中运行慢 4 倍
- node.js - Nodejs谷歌认证休息api
- python - 将变量传递给 MySQL 查询
- python - 如何将具有较大时间增量的熊猫记录拆分为具有较小时间增量的多个记录?
- python - 使用线程时对象不可调用?
- redis - volatile-lru 是否会驱逐所有具有相同 ttl 的键?
- python - 错误:NameError:未定义名称“Caitlin”
- c - 是否可以使用“fopen”或“open”打开当前程序(argv[0])
- python - DRF- 从嵌套表示创建新对象会引发 TypeError
- python - 使用 Selenium 和 Firefox 实现配置文件和扩展数据