为toggle父物体添加:toggleGroup组件,勾选Allow Switch Off
为每一个toggle选择下的Group选择添加toggleGroup组件的物体(此为toggle父物体)
void Start () {
toggles = transform.GetComponentsInChildren<Toggle>()
for (int i = 0i <toggles.Lengthi++)
{
Toggle toggle = toggles[i]
toggle.onValueChanged.AddListener((bool value) =>OnToggleClick(toggle, value))
}
}
//功能:点击选中某一个toggle时播放相对应的视频
void OnToggleClick(Toggle toggle,bool isSwitch) {
if (isSwitch)
{
print(toggle.name)
//改变文本字体的布局--居中
toggle.transform.Find("LabelBGImage/Label").GetComponent<Text>().alignment= TextAnchor.MiddleCenter
PlayerPrefs.DeleteAll()
PlayerPrefs.SetString("CurrentVideo","xuting")
SceneManager.LoadScene("fengcaiqiang")
}
else {
//改变文本字体的布局--低部居中
toggle.transform.Find("LabelBGImage/Label").GetComponent<Text>().alignment = TextAnchor.LowerCenter
}
}
处理toggle的动态绑定一般有两种方式 第一种,当你创建元素的时候然后动态的调用bind绑定,还有的是可以绑定click事件,然后再click中调用trigger方法去再触发一次click,不知道有没有说明白:
$('.box>div').live('click',function(){$(this).toggle(function(i){
$(this).css('background-color','#33FFFF')
},
function(i){
$(this).css('background-color','#33FF00')
},
function(i){
$(this).css('background-color','#0066CC')
}
)
$(this).trigger('click')
})
toggle.onValueChanged.AddListener((bool isOn)=>{ OnToggleClick(toggle,isOn)})添加事件是没有任何问题的,但是如果使用循环(别管你用哪个实现循环),传递进去的永远是最后一个.这个是天坑! 我已经无数次踩这个坑,又无数次想起来我的本办法解决方案.
不考虑资源问题,不考虑其他扯淡的,只考虑实现 在每个toggle下挂一个脚本...脚本里面在start()里面挂上这段代码...OK解决.....心塞+心碎要死....和组长不知道钢了多少次,杠了多少次,最后还是这样搞定! 有大神有高招求指教!小弟也急需其他使用代码解决的方案.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)