您好,登錄后才能下訂單哦!
小編給大家分享一下Unity怎么實現老虎機滾動抽獎效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
直接看下效果圖吧:
設計四張圖片,五個點,每個圖片同時向下一個點移動,到最后一個就回到0號點,以此循環。
創建Image命名為Bg作為電視框背景;
創建Image命名Mask并添加Mask組件作為電視框內容顯示遮罩框;
創建四個Image作為滾動圖片;
創建開始抽獎按鈕;
PS:實際項目中可以根據需求來動態修改圖片顯示,以達到的控制每次抽獎獎品內容。
using System.Collections; using UnityEngine; using UnityEngine.UI; public class ScollToDraw : MonoBehaviour { // 抽獎按鈕 public Button DrowBtn; // 獎勵圖片 public Image[] ArardImgArr; // 轉盤速度 public float AniMoveSpeed = 3f; // 進度 private float[] progress = new[] {0f, 1f, 2f, 3f, 4f}; // 轉動動畫位置 private Vector3[] AniPosV3 = new[] {Vector3.up * 240, Vector3.up * 120, Vector3.zero, Vector3.down * 120, Vector3.down * 240}; // 自動暫停標識 private bool isAutoStop; // 抽獎結束 停止刷新界面UI private bool isStopUpdatePos; void Start() { DrowBtn.onClick.AddListener(DrawFun); isAutoStop = false; isStopUpdatePos = false; } void Update() { if (isStopUpdatePos) return; float t = Time.deltaTime * AniMoveSpeed; for (int i = 0; i < ArardImgArr.Length; i++) { progress[i] += t; ArardImgArr[i].transform.localPosition = MovePosition(i); } } // 獲取下一個移動到的位置 Vector3 MovePosition(int i) { int index = Mathf.FloorToInt(progress[i]); if (index > AniPosV3.Length - 2) { //保留其小數部分,不能直接賦值為0 progress[i] -= index; index = 0; // 索引為2的到底了,索引為0的就在正中心 if (i == 2 && isAutoStop) { isStopUpdatePos = true; Debug.Log("展示獎勵界面..."); // todo...獲取獎勵數據維護 } return AniPosV3[index]; } else { return Vector3.Lerp(AniPosV3[index], AniPosV3[index + 1], progress[i] - index); } } /// <summary> /// 點擊抽獎 /// </summary> void DrawFun() { isAutoStop = false; isStopUpdatePos = false; StartCoroutine(SetMoveSpeed(2)); // DoTween 按鈕下拉動畫 // Transform tran = DrowBtn.transform; //tran.DOLocalMoveY(-60, 0.2f).OnComplete(() => //{ // tran.DOLocalMoveY(50, 0.2f); // //}); } // 抽獎動畫速度控制 IEnumerator SetMoveSpeed(int time) { AniMoveSpeed = 10; yield return new WaitForSeconds(time); AniMoveSpeed = 1; yield return new WaitForSeconds(time); isAutoStop = true; } }
以上是“Unity怎么實現老虎機滾動抽獎效果”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。