温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

利用unity怎么实现一个翻页效果

发布时间:2021-03-03 15:50:28 来源:亿速云 阅读:699 作者:Leah 栏目:开发技术

这期内容当中小编将会给大家带来有关利用unity怎么实现一个翻页效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创建物体ToPanel;添加组件ScrollRect,

在下面创建一个空物体用来装需要移动的子物体,

利用unity怎么实现一个翻页效果

利用unity怎么实现一个翻页效果

创建一个Scrollbar;

利用unity怎么实现一个翻页效果

利用unity怎么实现一个翻页效果

利用unity怎么实现一个翻页效果

利用unity怎么实现一个翻页效果

三、代码

下面展示一些 内联代码片。

using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; public class SliderControl : MonoBehaviour {   public Scrollbar m_Scrollbar;   public ScrollRect m_ScrollRect;   [Header("子物体的父物体")]   public GameObject panel;   [Header("移动到多少百分比图片切换")]  //注释   [Range(0.1f, 0.9f)] //范围   public float banfenbi = 0.5f;   [Header("是否限制一次只能切换一张图片")]     public bool limit = false;   private float mTargetValue;   private bool mNeedMove = false;   private const float SMOOTH_TIME = 0.2F;   private float mMoveSpeed = 0f;   private float child_Count;   private float num1;   private float var_Down;   private List<float> num_list1 =new List<float>();   private List<float> num_list2 = new List<float>();   private List<float> num_list3 = new List<float>();   private int weizhi; //页数   void Start()   {     weizhi = 0;     child_Count = panel.transform.childCount;     num1 = 1 / (child_Count - 1);     print("-----子物体数量------  " + child_Count + "   " + num1);     for (int i = 0; i < child_Count; i++)     {       float a = 0;       num_list1.Add(a + num1 * i);       float b = (a + num1 * i) + (num1 * banfenbi);       num_list2.Add(b);       float c = (a + num1 * i) + (num1 * (1-banfenbi));       num_list3.Add(c);       print("---child_Count----- " + num_list1[i] + "  " + num_list2[i]);     }   }   public void OnPointer()   { }   public void OnPointerDown()   {     //print("---OnPointerDown----");     var_Down = m_Scrollbar.value;     mNeedMove = false;   }   public void OnPointerUp()   {     //print("---OnPointerUp----");     //print("-----m_Scrollbar.value---- " + m_Scrollbar.value);     for (int i = 0; i < child_Count; i++)     {       float num;       if (var_Down- m_Scrollbar.value<0)       {         num = num_list2[i];       }       else       {         num = num_list3[i];       }       if (m_Scrollbar.value <= num)       {         if (limit)         {           if (i> weizhi)           {             weizhi = weizhi + 1;           }           else if (i == weizhi)           {             weizhi = i;           }           else           {             weizhi = weizhi - 1;           }           mTargetValue = num_list1[weizhi];         }         else         {           mTargetValue = num_list1[i];           weizhi = i;  //页数         }         break;       }     }     mNeedMove = true;     mMoveSpeed = 0;   }   /// <summary>   /// 直接跳转到指定页数   /// </summary>   /// <param name="页数"></param>   public void OnButtonClick(int value)   {     mTargetValue = num_list1[value];     if (mTargetValue<0)     {       mTargetValue = 0;     }     if (mTargetValue>1)     {       mTargetValue = 1;     }     weizhi = value;     mNeedMove = true;   }   void Update()   {     if (mNeedMove)     {       if (Mathf.Abs(m_Scrollbar.value - mTargetValue) < 0.01f)       {         m_Scrollbar.value = mTargetValue;         mNeedMove = false;         MoveEnd();         return;       }       m_Scrollbar.value = Mathf.SmoothDamp(m_Scrollbar.value, mTargetValue, ref mMoveSpeed, SMOOTH_TIME);     }   }   /// <summary>   /// 移动完毕的回调   /// </summary>   public void MoveEnd()   {     print("----- 移动完毕-----第几页--- "+ (weizhi+1));   } }

上述就是小编为大家分享的利用unity怎么实现一个翻页效果了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI