項(xiàng)目中有個(gè)需求,是需要玩家滑動(dòng)解鎖,增加二次確認(rèn)難度防止玩家誤操作的一個(gè)功能,就如同iphone滑動(dòng)解鎖一樣
滑動(dòng)解鎖
我的做法 是直接采用Unity自帶的Slider來(lái)實(shí)現(xiàn),大概原理就是滑動(dòng)handle到slider的maxvalue.然后做一些列操作
初始狀態(tài)
確認(rèn)狀態(tài)
但是策劃不想要這么生硬的拉扯,想做個(gè)松開(kāi)按鈕,如果滑動(dòng)條值沒(méi)有滿自動(dòng)縮回去的一個(gè)動(dòng)畫(huà)效果,和iphone一樣
由于自帶的slider 沒(méi)有提供松開(kāi)鼠標(biāo)的一些事件用來(lái)監(jiān)聽(tīng),但是F12進(jìn)入可以看到
OnPointerDown是個(gè)override鼠標(biāo)按下事件
既然有down 肯定有up,再f12父類(lèi)
OnPointerUp,virtual方法就是鼠標(biāo)抬起
所以 自己擴(kuò)展一個(gè)uislider組件,繼承Slider
自己擴(kuò)展繼承
Slider
其中m_Value,看源碼可知道 就是我們slider的value
value
擴(kuò)展一個(gè)onvaluechangeend事件,去實(shí)現(xiàn)他即可
松開(kāi)時(shí)value小于1,就自動(dòng)把value縮小至0,其中用了dotween動(dòng)畫(huà)
擴(kuò)展下,策劃雖然沒(méi)有說(shuō)給文字說(shuō)什么動(dòng)態(tài)效果,但是自己根據(jù)iphone的解鎖,做了個(gè)類(lèi)似呼吸燈的效果,原理也很簡(jiǎn)單,使用dotween ,對(duì)canvasgroup的擴(kuò)展,動(dòng)態(tài)改變alpha就行,或者改變文本顏色的透明通道也行
淺色
深色