zoukankan      html  css  js  c++  java
  • NGUI 滑动特效之中间放大滚动

    效果图如下:

    其实很简单,在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<UISprite>().depth = 1;
                    }
                    else
                    {
                        Items[i].GetComponent<UISprite>().depth = 2;
                    }
                }
            }
        }
    
    }
  • 相关阅读:
    反射 Reflection
    后台输出的数据进行字符判断,小数点后边是0不显示,不是0显示
    判断input内的字符是不是数字或字母
    手机端底部按钮隐藏与显示
    CSS改变checkbox样式
    js小数取整 小数保留两位
    如何判断打开页面时使用的设备?
    H5 拖放实例
    根据手机系统引入不同的css文件
    HTML 5 video 视频标签全属性详解(转)
  • 原文地址:https://www.cnblogs.com/SHOR/p/5458538.html
Copyright © 2011-2022 走看看