unity动态为多个toggle添加事件

unity动态为多个toggle添加事件,第1张

使用toggle实现单选效果

为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(fn1,fn2,fn3)它是一个事件 是一个单击事件 但和click不同的时 click里面只能有一个函数 但toggle里面可以有多个函数

toggle事件的意思是 当你第一次点击时 执行第一个函数 第二次点击时执行第二个函数 第三次点击时执行第三个函数。。。 当执行完所有函数之后 又跳到第一个函数重新来执行 这样一直循环执行

如$("#btn1").toggle(function(){alert('1')},function(){alert('2')},function(){alert('3')})

当第一次点击#btn1时 alert('1')

第二次点击时 alert('2')

第三次点击时 alert('3')

第四次点击时 alert('1') //这里又跳回第一个函数了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7976956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存