偶然看到一篇關于Android原生開發按鈕特效的文章,發現這種效果在日常使用的許多app中普遍存在,于是思考了下在Unity3d uGUI下如何重制。http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1130/2084.html
目标效果:
1. 滑鼠點選的位置開始生成一個慢慢擴大的波韻;
2. 長按一個按鈕,并保證Cursor一直不離開,波韻緩慢擴大直到覆寫整個Button,松開時執行指令,顔色逐漸消失;
3. Cursor在長按過程中一旦移開Button熱區,波韻迅速放大并漸變消失,指令将不執行;
4. 短點選操作,每次MouseUp波韻都加速放大并漸變消失,下次點選又建立一個新的波。
思路整理:
1. 通過EventSystems的接口類,擷取輸入姿态;
2. 通過Input.mousePosition傳遞滑鼠在螢幕上的2d坐标;
3. 通過Shader接收坐标,進行一定換算繪制波韻;
4. 通過給Button添加材質球把讓Shader在uGUI上實作。
式例代碼:
MaterialButton.unitypackage