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教程之完成滑頁後果,願望對年夜家有所贊助!