概述
废话不多说,先来张效果图。。
因为最近在研究NGUI,所以用的是NGUI。
public class CurveSort : MonoBehaviour
{
public UISprite[] uiSprites;
public AnimationCurve curve;
public float weight; //屏幕的宽
public float height; //屏幕的高
public float temp;
private Vector3 pos;
private void Start()
{
pos = transform.position;
SetPosition();
}
void Update()
{
if (pos != transform.position) //优化性能不用每帧SET
{
SetPosition();
pos = transform.position;
}
}
public void SetPosition()
{
for (int i = 0; i < uiSprites.Length; i++)
{
Transform t = uiSprites[i].transform;
float y = curve.Evaluate(t.localPosition.x / weight + transform.position.x * temp);//应该也有一个比例不过我没有细算就用temp代替了
t.localPosition = new Vector3(t.localPosition.x, y * height, 0);
}
}
}
挂载的脚本是这样的,理解意思就好了
通过改变曲线形状自定义Sprite排列,觉得挺有意思,在此抛砖引玉,写出来和大家分享。
今天偶然发现一个大佬的解决方案,链接发出来分享一哈:
https://blog.csdn.net/coffeecato/article/details/79166748
最后
以上就是无心泥猴桃为你收集整理的用Unity的AnimationCurve实现简易滚动的全部内容,希望文章能够帮你解决用Unity的AnimationCurve实现简易滚动所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复