spine在unity中实现闪白效果
游戏开发过程中需要游戏对象被攻击的时候变白,然后有有闪烁的效果。
这其实是两个效果:
1.变白的效果
要实现这个效果需要修改spine的shader模式。spine导入unity中时默认采用的shader是“Spine/Skeleton”需要将这个模式该为
“Spine/Skeleton Fill”.在这个shader中有一个参数Fill Phase通过代码动态修改这个参数,就可以实现对象的变白,默认是0就是不白,
如果改成1就是全白,中间值为透明白。下面是关键代码
gameObject.GetComponent<Renderer>().material.SetFloat("_FillPhase", 0.5f);
2.闪烁效果
其实闪烁效果可以通过透明来实现,每间隔0.05s实现一次透明,在隔0.05s秒恢复,如此由于人的视觉残留就会出现闪烁的效果,
关键代码如下:
skeleton.skeleton.SetColor(color);
这个color的alpha通道给为0就是全透明,1就是不透明