Unity3d Toggle onValueChanged 传参数 错误(始终为最后一个实例的值)
来源:互联网 发布:mac照片管理 编辑:程序博客网 时间:2024/06/08 01:41
public IEnumerator RefreshFoodInfo()
{
GameObject go = foodPanel.transform.GetChild(i).gameObject;
Destroy(go);
}
foreach (var temp in CSJManager.instance.foodManager.foodDic)
{
FoodData food = temp.Value;
GameObject item = Instantiate(Resources.Load("Prefabs/FoodToggle", typeof(GameObject))) as GameObject;
item.transform.SetParent(foodPanel.transform, false);
item.name = food.name;
item.transform.FindChild("TextName").GetComponent<Text>().text = food.name;
item.transform.FindChild("TextIndex").GetComponent<Text>().text = food.index.ToString();
Toggle toggle = item.GetComponent<Toggle>();
toggle.onValueChanged.AddListener(
delegate(bool isOn)
{
this.OnToggleValueChanged(isOn, item);
}
);
toggle.group = foodPanel.GetComponent<ToggleGroup>();
curFood = null;
}
buttonAdd.SetActive(true);
buttonUpdate.SetActive(false);
buttonDelete.SetActive(false);
}
public void OnToggleValueChanged(bool isOn, GameObject obj)
{
if (isOn)
{
curFood = obj;
inputFieldIndex.text = obj.transform.FindChild("TextIndex").GetComponent<Text>().text;
inputFieldName.text = obj.transform.FindChild("TextName").GetComponent<Text>().text;
buttonAdd.SetActive(false);
buttonUpdate.SetActive(true);
buttonDelete.SetActive(true);
}
}
{
yield return new WaitForEndOfFrame();
{
GameObject go = foodPanel.transform.GetChild(i).gameObject;
Destroy(go);
}
foreach (var temp in CSJManager.instance.foodManager.foodDic)
{
FoodData food = temp.Value;
GameObject item = Instantiate(Resources.Load("Prefabs/FoodToggle", typeof(GameObject))) as GameObject;
item.transform.SetParent(foodPanel.transform, false);
item.name = food.name;
item.transform.FindChild("TextName").GetComponent<Text>().text = food.name;
item.transform.FindChild("TextIndex").GetComponent<Text>().text = food.index.ToString();
Toggle toggle = item.GetComponent<Toggle>();
toggle.onValueChanged.AddListener(
delegate(bool isOn)
{
this.OnToggleValueChanged(isOn, item);
}
);
toggle.group = foodPanel.GetComponent<ToggleGroup>();
curFood = null;
}
buttonAdd.SetActive(true);
buttonUpdate.SetActive(false);
buttonDelete.SetActive(false);
}
public void OnToggleValueChanged(bool isOn, GameObject obj)
{
if (isOn)
{
curFood = obj;
inputFieldIndex.text = obj.transform.FindChild("TextIndex").GetComponent<Text>().text;
inputFieldName.text = obj.transform.FindChild("TextName").GetComponent<Text>().text;
buttonAdd.SetActive(false);
buttonUpdate.SetActive(true);
buttonDelete.SetActive(true);
}
}
obj始终为最后一个实例的obj。
错误原因:函数返回值为IEnumerator。 RefreshFoodInfo() 不能为协程函数。
0 0
- Unity3d Toggle onValueChanged 传参数 错误(始终为最后一个实例的值)
- 解决JS循环闭包导致索引始终为最后值的问题
- execlp最后一个参数必须为空
- sourcegrid 应用实例(全部来自官网下载的例子)——Nullable CheckBox and OnValueChanged Controller
- 通知栏PendingIntent传递参数始终为null的问题
- 单例类(Singleton)一个类始终只能创建一个实例
- toggle事件当鼠标点击所监听的内容时轮流按顺序执行toggle中定义的方法直到最后一个为止
- document.addEventListener 事件的最后一个参数
- WaitForMultipleObjectsEx最后一个参数的用途
- document.addEventListener 事件的最后一个参数
- class_addMethod 最后一个参数
- unity3d Billboard(物体始终面相摄像机)
- Unity3D -- (UGUI)Toggle
- Unity3D之Toggle
- readyState状态值始终为1的解决办法
- Recordset的Open函数的最后一个参数Options的取值范围!...
- FastDFS+Nginx错误:storage服务状态始终为(SYNCING:同步中)
- Toggle、PopupList值的获取
- android中PhoneWindow、DecorView
- 多线程使用总结
- 被误解的MVC和被神化的MVVM
- 数据的简介
- Hadoop-实例WordCount
- Unity3d Toggle onValueChanged 传参数 错误(始终为最后一个实例的值)
- 嵌入式网络编程
- Linux 调度器发展简述
- Android 设备竖屏横屏切换
- ORACLE中ESCAPE关键字用法
- 在C/C++代码中使用SSE等指令集的指令(3)SSE指令集基础
- css中元素的水平居中
- 关于javascript的this指向问题
- sublime快捷键