Unity切换状态更改导致StackOverflow

时间:2018-09-21 21:42:37

标签: unity3d

我在Start方法中基于预制实例化了一个Toggle。但是,当我单击切换时,Unity冻结,并且在控制台中看到一个StackOverflow弹出窗口。我正在关注此Unity toggle example

我的直觉是我的错误是因为在创建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;
}

0 个答案:

没有答案