Unity實現跑馬燈抽獎效果
Unity 跑馬燈抽獎效果實現代碼,供大家參考,具體內容如下
這邊用到插件是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);
    //獲取需要監(jiān)聽的按鈕對象
    GameObject button = GameObject.Find("Lucky/Bg/start");
    //設置這個按鈕的監(jiān)聽,指向本類的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 () {
 
 }
}
代碼很糙,大家自己完善吧!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。
上一篇:C# 獲取進程退出代碼的實現示例
欄 目:C#教程
本文標題:Unity實現跑馬燈抽獎效果
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/4930.html
您可能感興趣的文章
- 01-10C#實現txt定位指定行完整實例
 - 01-10WinForm實現仿視頻播放器左下角滾動新聞效果的方法
 - 01-10C#實現清空回收站的方法
 - 01-10C#實現讀取注冊表監(jiān)控當前操作系統(tǒng)已安裝軟件變化的方法
 - 01-10C#實現多線程下載文件的方法
 - 01-10C#實現Winform中打開網頁頁面的方法
 - 01-10C#實現遠程關閉計算機或重啟計算機的方法
 - 01-10C#自定義簽名章實現方法
 - 01-10C#文件斷點續(xù)傳實現方法
 - 01-10winform實現創(chuàng)建最前端窗體的方法
 


閱讀排行
本欄相關
- 01-10C#通過反射獲取當前工程中所有窗體并
 - 01-10關于ASP網頁無法打開的解決方案
 - 01-10WinForm限制窗體不能移到屏幕外的方法
 - 01-10WinForm繪制圓角的方法
 - 01-10C#實現txt定位指定行完整實例
 - 01-10WinForm實現仿視頻播放器左下角滾動新
 - 01-10C#停止線程的方法
 - 01-10C#實現清空回收站的方法
 - 01-10C#通過重寫Panel改變邊框顏色與寬度的
 - 01-10C#實現讀取注冊表監(jiān)控當前操作系統(tǒng)已
 
隨機閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
 - 08-05織夢dedecms什么時候用欄目交叉功能?
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 01-10delphi制作wav文件的方法
 - 01-10使用C語言求解撲克牌的順子及n個骰子
 - 08-05dedecms(織夢)副欄目數量限制代碼修改
 - 04-02jquery與jsp,用jquery
 - 08-05DEDE織夢data目錄下的sessions文件夾有什
 - 01-10C#中split用法實例總結
 - 01-11ajax實現頁面的局部加載
 


