有些界面会有很赞的移动缩放效果,对,就是那种中间打,两边小,并且有层级关系的那种效果。在自己没有什么思路的前提下,百度了下别人实现的效果,总是觉得他们的实现有些复杂,没有充分利用Unity的特性,索性自己单独实现了一个方法。目前来看,觉得效果还是挺不错的,并且代码量也不是很多,实现起来也不是很麻烦。
由于时间原因,今天只分析实现思路,随后贴上效果和源码。
这样的效果,是通过手指移动(通过IDragHandler检测),改变物体的位移和缩放的,那么事件的驱动只有一个变量了,那就是每次位移的距离差值。本地坐标加上距离差值,就是我们最终需要的关键变量。通过改变x可以实现位移,而缩放就需要我们自己写一个线性方程或者直线方程控制缩放,这样就可以实现位移加缩放的功能。不过,目前并没有考虑UI的层级关系,而层级关系,则需要新建三个RectTransform作为父物体标记层级关系了,通过检测物体的缩放来控制物体的层级关系。
版权声明:本文为qq_24189773原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。