unity3d - Unity 切换状态更改导致 StackOverflow
问题描述
我正在我的 Start 方法中基于预制件实例化一个 Toggle。但是,当我单击切换 Unity 冻结时,我看到控制台中弹出 StackOverflow。我正在关注这个Unity 切换示例。
我有预感我的错误是因为在创建 Toggle 后我传递tog
给另一个创建实例的方法(因为我的程序中需要很多切换),但我不明白它为什么会崩溃。有人可以解释一下吗?
public void Start(){
//toggle creation
GameObject tog1 = Instantiate(prefabTog, btnVector + Vector3.left * 90, Quaternion.identity);
tog1.transform.SetParent(imgBtnParent.transform, false);
Toggle tog = tog1.GetComponent<Toggle>();
tog.onValueChanged.AddListener(delegate {ToggleValueChanged(tog);});
//generate toggle instance on screen and pass me back a Scriptable Object
var so=GenerateItem.CreateInstance(tog);
}
public class GenerateItem: ScriptableObject {
public Toggle AutoTog=null;
public static GenerateItem(Toggle tog){
GenerateItem o = CreateInstance<GenerateItem>();
o.AutoTog=tog;
}
}
切换更改
public void ToggleValueChanged(Toggle t)
{
t.isOn = !t.isOn;
}
解决方案
推荐阅读
- netlogo - NetLogo 中 n-of 命令的调试代码
- c++ - SDL_PollEvent 导致我的窗口冻结
- java - How do I negate a phrase in a code generated regular expression?
- java - influxdb-java: org.influxdb.InfluxDBIOException: java.net.SocketException: Connection reset by peer: socket write error
- python - How to clean up tk.createcommand?
- javascript - 动态填充选择中的选择选项
- spring-boot - 在活动目录中更改密码时出错
- c++ - 如何从 scipy.minimize 迁移到 ceres-solver?
- scipy - 多元最小化/拟合结果的置信区间
- c++ - 有没有办法在视觉环境中使用 Win32 C++ 源代码?