Unity 跑馬燈抽獎效果實現代碼,供大家參考,具體內容如下
倉山ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
這邊用到插件是NGUI+Dotween,思路簡單說下:先排版,通過移動圖片蒙版來實現效果。
下面是排版和文件目錄。
代碼部分是通過余數去確認停的位置,boxlist通過unity拖拉加入數據,chooseBoxList直接通過余數判斷添加。
代碼量很少,稍微看下就明白了。
直接上代碼了:
using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using UnityEngine; public class goLuckyDraw : MonoBehaviour { private int index = 23; //index%12 來判斷停在哪個位置 // Use this for initialization private UISprite prize1,prize2,prize3,prize4,prize5,prize6,prize7,prize8,prize9,prize10,prize11,prize12, prize13, prize14; private UISprite transparentBox; public List<Transform> boxList = new List<Transform>(); public List<Transform> chooseBoxList = new List<Transform>(); void Start () { prize1 = GameObject.Find("Lucky/Bg/prize1").GetComponent<UISprite>(); prize2 = GameObject.Find("Lucky/Bg/prize2").GetComponent<UISprite>(); prize3 = GameObject.Find("Lucky/Bg/prize3").GetComponent<UISprite>(); prize4 = GameObject.Find("Lucky/Bg/prize4").GetComponent<UISprite>(); prize5 = GameObject.Find("Lucky/Bg/prize5").GetComponent<UISprite>(); prize6 = GameObject.Find("Lucky/Bg/prize6").GetComponent<UISprite>(); prize7 = GameObject.Find("Lucky/Bg/prize7").GetComponent<UISprite>(); prize8 = GameObject.Find("Lucky/Bg/prize8").GetComponent<UISprite>(); prize9 = GameObject.Find("Lucky/Bg/prize9").GetComponent<UISprite>(); prize10 = GameObject.Find("Lucky/Bg/prize10").GetComponent<UISprite>(); prize11 = GameObject.Find("Lucky/Bg/prize11").GetComponent<UISprite>(); prize12 = GameObject.Find("Lucky/Bg/prize12").GetComponent<UISprite>(); prize13 = GameObject.Find("Lucky/Bg/prize13").GetComponent<UISprite>(); prize14 = GameObject.Find("Lucky/Bg/prize14").GetComponent<UISprite>(); transparentBox = GameObject.Find("Bg/Transparentbox").GetComponent<UISprite>(); transparentBox.gameObject.SetActive(false); //獲取需要監聽的按鈕對象 GameObject button = GameObject.Find("Lucky/Bg/start"); //設置這個按鈕的監聽,指向本類的ButtonClick方法中。 UIEventListener.Get(button).onClick = StartLuckyDraw; chooseIndex(index); // StartLuckyDraw(); } IEnumerator Move( ) { float time; for (int i = 0; i < boxList.Count; i++) { time = Mathf.Lerp(0.04f, 0.05f, 0.05f*i); Debug.Log("---time----="+time); transparentBox.transform.DOLocalMove(boxList[i].localPosition, time); yield return new WaitForSeconds(0.05f); } for (int i = 0; i < boxList.Count; i++) { time = Mathf.Lerp(0.05f, 0.065f, 0.05f * i); Debug.Log("---time3----=" + time); transparentBox.transform.DOLocalMove(boxList[i].localPosition, time); yield return new WaitForSeconds(0.05f); } for (int i = 0; i < boxList.Count; i++) { time = Mathf.Lerp(0.065f, 0.08f, 0.05f * i); Debug.Log("---time2----=" + time); transparentBox.transform.DOLocalMove(boxList[i].localPosition, time); yield return new WaitForSeconds(0.05f); } for (int i = 0; i < chooseBoxList.Count; i++) { transparentBox.transform.DOLocalMove(chooseBoxList[i].localPosition,0.1f); yield return new WaitForSeconds(0.1f); } yield return new WaitForSeconds(2f); transparentBox.gameObject.SetActive(false); } private void chooseIndex(int index) { chooseBoxList.Clear(); for (int i = 0; i < index % 12; i++) { chooseBoxList.Add(boxList[i]); } } private void StartLuckyDraw(GameObject go) { transparentBox.gameObject.SetActive(true); StartCoroutine(Move()); } void Update () { } }
代碼很糙,大家自己完善吧!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。
本文題目:Unity實現跑馬燈抽獎效果
當前網址:http://vcdvsql.cn/article6/pdisig.html
成都網站建設公司_創新互聯,為您提供網站設計公司、標簽優化、微信公眾號、ChatGPT、響應式網站、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯