我是靠谱客的博主 唠叨楼房,这篇文章主要介绍unity实现翻页效果,现在分享给大家,希望可以做个参考。

本文实例为大家分享了unity实现翻页效果的具体代码,供大家参考,具体内容如下

一、示意图

二、步骤

创建物体ToPanel;添加组件ScrollRect,
在下面创建一个空物体用来装需要移动的子物体,

创建一个Scrollbar;

三、代码

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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实现翻页效果的全部内容,更多相关unity实现翻页效果内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(177)

评论列表共有 0 条评论

立即
投稿
返回
顶部