博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NGUI 滑动特效之中间放大滚动
阅读量:4363 次
发布时间:2019-06-07

本文共 1886 字,大约阅读时间需要 6 分钟。

效果图如下:

其实很简单,在NGUI原有的滑动组件的基础上处理一下比例系数就好,每个块的位置是固定的,移动的是Panel。

所以呢用Panel的位置与块的位置做差在比几个块不就成了比例系数了么。。自然就出来了,最后在处理一下层级就ok了。

代码如下(我是生成的10个块):

using UnityEngine;using System.Collections;public class test : MonoBehaviour {    private GameObject mItem;    private GameObject[] Items = new GameObject[11];    private Vector3 Pos = new Vector3(0, 0, 0);    private bool begin = false;    void Start()    {        mItem = transform.Find("Item").gameObject;        for (int i = 9; i >= 0; i--)        {            Clone(i);        }        begin = true;      }    void Clone(int i)    {        GameObject _clone = Instantiate(mItem) as GameObject;        Pos.x = 100 * i;        _clone.transform.SetParent(gameObject.transform);        _clone.transform.localPosition = Pos;        _clone.transform.localScale = Vector3.one;        _clone.SetActive(true);        Items[i] = _clone;    }    void Update()    {        if (begin)        {            float max = 0;            int j = 0;            for (int i = 0; i < 10; i++)            {                Vector3 Ipos = Items[i].transform.localPosition;                float factor = Mathf.Abs(Ipos.x + gameObject.transform.parent.transform.localPosition.x);                factor = 1 - factor / 1000;                Vector3 p = Vector3.one * factor;                p.x = 1;                Items[i].transform.localScale = p;                if (factor > max)                {                    max = factor;                    j = i;                }            }            for (int i = 0; i < 10; i++)            {                if (j != i)                {                    Items[i].GetComponent
().depth = 1; } else { Items[i].GetComponent
().depth = 2; } } } }}

 

转载于:https://www.cnblogs.com/SHOR/p/5458538.html

你可能感兴趣的文章
Django生命请求周期
查看>>
深入Asyncio(十二)Asyncio与单元测试
查看>>
python正则实现简单计算器
查看>>
网络状况判断
查看>>
SET || BZOJ 1588: [HNOI2002]营业额统计 || Luogu P2234 [HNOI2002]营业额统计
查看>>
SQL Server 更改隔离级
查看>>
svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法...
查看>>
2018年11月16日编程体会
查看>>
EASYUI DATAGRID 多列复选框CheckBox
查看>>
fit_transform和transform的区别
查看>>
常用激活函数(激励函数)理解与总结
查看>>
DataFrame.to_dict(orient='dict')英文文档翻译
查看>>
DictVectorizer中的fit_transform
查看>>
HDFS优缺点
查看>>
排序算法(1) 快速排序 C++实现
查看>>
伙伴分配器的一个极简实现
查看>>
$.ajax所犯的错误。success后面不执行
查看>>
Spring注入方式及注解配置
查看>>
cocos2dx blender 骨骼动画实现
查看>>
ARM基础
查看>>