这期内容当中小编将会给大家带来有关利用unity怎么实现一个翻页效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创建物体ToPanel;添加组件ScrollRect,
在下面创建一个空物体用来装需要移动的子物体,
创建一个Scrollbar;
下面展示一些 内联代码片。
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怎么实现一个翻页效果了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。