Unity UGUI教程之完成滑頁後果。本站提示廣大學習愛好者:(Unity UGUI教程之完成滑頁後果)文章只能為提供參考,不一定能成為您想要的結果。以下是Unity UGUI教程之完成滑頁後果正文
簡介
項目須要...直接展現後果吧:

道理
應用UGUI供給的ScrollRect和ScrollBar組件完成根本滑動和本身掌握每次挪動一頁來到達滑頁的後果。
完成進程
1.創立兩個panel,下面的panel用於顯示,上面的panel用於寄存按鈕

2.在TopPanel上添加ScrollRect劇本,用於滑動

3.在TopPanel下創立一個新的Panel,並在子Panel下訪問要顯示的對象

4.將該子Panel設置為ScrollRect的運動對象

5.為ScrollRect添加ScrollBar轉動條,直接在空白處單機右鍵添加ScrollBar便可


6.將ScrollBar與ScrollRect聯系關系

7.設置ScrollRect的其他參數

8.將SliderControl劇本掛在TopPanel上,並聯系關系ScrollBar

9.添加呼應事宜

為按鈕也添加響應的事宜(記住是五個按鈕哈)

10.運轉檢查後果吧,假如失足,請檢討上述步調
代碼
SliderControl:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class SliderControl : MonoBehaviour
{
public Scrollbar m_Scrollbar;
public ScrollRect m_ScrollRect;
private float mTargetValue;
private bool mNeedMove = false;
private const float MOVE_SPEED = 1F;
private const float SMOOTH_TIME = 0.2F;
private float mMoveSpeed = 0f;
public void OnPointerDown()
{
mNeedMove = false;
}
public void OnPointerUp()
{
// 斷定以後位於哪一個區間,設置主動滑動至的地位
if (m_Scrollbar.value <= 0.125f)
{
mTargetValue = 0;
}
else if (m_Scrollbar.value <= 0.375f)
{
mTargetValue = 0.25f;
}
else if (m_Scrollbar.value <= 0.625f)
{
mTargetValue = 0.5f;
}
else if (m_Scrollbar.value <= 0.875f)
{
mTargetValue = 0.75f;
}
else
{
mTargetValue = 1f;
}
mNeedMove = true;
mMoveSpeed = 0;
}
public void OnButtonClick(int value)
{
switch (value)
{
case 1:
mTargetValue = 0;
break;
case 2:
mTargetValue = 0.25f;
break;
case 3:
mTargetValue = 0.5f;
break;
case 4:
mTargetValue = 0.75f;
break;
case 5:
mTargetValue = 1f;
break;
default:
Debug.LogError("!!!!!");
break;
}
mNeedMove = true;
}
void Update()
{
if (mNeedMove)
{
if (Mathf.Abs(m_Scrollbar.value - mTargetValue) < 0.01f)
{
m_Scrollbar.value = mTargetValue;
mNeedMove = false;
return;
}
m_Scrollbar.value = Mathf.SmoothDamp(m_Scrollbar.value, mTargetValue, ref mMoveSpeed, SMOOTH_TIME);
}
}
}
總結
挪動用的mathf供給的膩滑函數,假如須要阻尼後果,可以本身修正代碼。
以上內容是小編給年夜家引見的Unity UGUI教程之完成滑頁後果,願望對年夜家有所贊助!