1. 程式人生 > >NGUI Grid列表迴圈

NGUI Grid列表迴圈

using UnityEngine;
using System.Collections;

namespace Utility
{
	public class NGUIGridAutoLoop : MonoBehaviour 
	{
		public enum LoopDircetion 
		{
			LeftToRight,
			RightToLeft,
			TopToDown,
			DownToTop,
		}

		public enum LoopType 
		{
			Horizontal,
			Vertical,
		}

		public delegate void OnLoopDelegate (LoopDircetion direction);

		public LoopType m_looptype = LoopType.Vertical;
		public OnLoopDelegate m_loopCallback;

		private UIGrid m_grid;
		private Transform m_gridTrans;
		private float validWidth;
		private float validHeight;

		private void Awake () 
		{
			m_grid = transform.GetComponentInChildren<UIGrid> ();
			if(m_grid != null)
				m_gridTrans = m_grid.transform;
		}

		private void Start () 
		{
			if (m_grid == null || m_gridTrans.childCount == 0) {
				Debug.LogError ("GridAutoLoop Error");
				return;
			}

			validWidth = m_grid.transform.childCount * m_grid.cellWidth;
			validHeight = m_grid.transform.childCount * m_grid.cellHeight;

			var backupGo = GameObject.Instantiate (m_grid.transform.GetChild(0));
			backupGo.gameObject.SetActive (true);
			backupGo.transform.SetParent (m_grid.transform, false);
		}

		private void LateUpdate () 
		{
			if (m_looptype == LoopType.Vertical) {
				while (m_grid.transform.localPosition.y < 0) {
					m_grid.transform.localPosition += new Vector3 (0, validHeight, 0);
					if (m_loopCallback != null)
						m_loopCallback (LoopDircetion.TopToDown);
				}

				while (m_grid.transform.localPosition.y > validHeight) {
					m_grid.transform.localPosition -= new Vector3 (0, validHeight, 0);
					if (m_loopCallback != null)
						m_loopCallback (LoopDircetion.DownToTop);
				}
			} else if (m_looptype == LoopType.Horizontal) {
				while (m_grid.transform.localPosition.x > 0) {
					m_grid.transform.localPosition -= new Vector3 (validWidth, 0, 0);
					if (m_loopCallback != null)
						m_loopCallback (LoopDircetion.LeftToRight);
				}

				while (m_grid.transform.localPosition.x < -validWidth) {
					m_grid.transform.localPosition += new Vector3 (validWidth, 0, 0);
					if (m_loopCallback != null)
						m_loopCallback (LoopDircetion.RightToLeft);
				}
			}
		}
	}

}

NGUI下列表迴圈,支援上下方向或者左右方向,用的地方比如,數字轉碼效果,抽獎列表迴圈,類似滾動無縫迴圈均可以

相關推薦

NGUI Grid列表迴圈

using UnityEngine; using System.Collections; namespace Utility { public class NGUIGridAutoLoop : MonoBehaviour { public enum Loop

FineUI grid列表拓展列

clas ade dset borde form fin index body orm <x:Grid runat="server" EnableCollapse="true" OnRowDoubleClick="RowDoubleClick" OnRowDataB

selenium 列表迴圈定位方法。

話不多說,直接上程式碼。 就是迴圈第一層,然後拼接,然後繼續迴圈,繼續屏接,任你多少層都不是問題。 def c_select(self, values, text): """列表定位,輸入第一層後,將第一層的值放到第二層繼續迴圈得到值。""" self.all

字典型別,列表型別,列表迴圈推導式

字典型別 字典,又稱雜湊對映 可雜湊性 print(hash('hello')) 字典是鍵值對,key對應值,其中key和value相對應,具有描述性的功能 #dic={}#d={1:'aaa',2.2:'bbb','xxx':'ccc',(1,2,3):'dddd'} #d=dict(...)#p

vue自定義元件和列表迴圈--vue學習筆記

<div id="app"> <shaoyou v-for='item in listData' v-bind:myProps='item' v-bind:ke

微信小程式 wx:key 高階列表迴圈

讓我們先看看程式碼 .wxml 程式碼 <block wx:for="{{items}}">   <label><checkbox />{{item.title}}</label></block><bu

ABAP--如何在list螢幕上輸出GRID列表

在List輸出螢幕輸出GRID列表,輸出結果如圖: 程式碼如下: REPORT  ZSAPM. data repid    like sy-repid. DATA: docking_t tYPE REF TO CL_GUI_DOCKING_CONTAINER,     

python3列表迴圈插入,之後輸出一行

學習python3 開始學習python3,目前已經更新到python3.7。 python之父-蟒蛇大神,他離開了python開發公司,不知道python3,.7,蟒蛇大神參加了沒有。 慢慢來,先學習著,還有很多的不明白的地方。 學習列表

DHTMLX做一個Grid列表顯示資料

準備資料 data.xml Grid的資料從這裡讀取 <?xml version="1.0" encoding="UTF-8"?> <rows> <r

6.vue2-條件渲染v-if和列表迴圈v-for

Author: vanessa Date: 2018/03/06 1.v-if語法:寫在html標籤內部,類似於標籤屬性 <div id="app"> <div v-if="examType=='kzbs'">考證筆試</div>

Python 在列表迴圈中的一些坑

迴圈內用 remove 刪除列表自身元素 問題 在 for i in list 迴圈中,如果在迴圈內部使用 list 的 remove 方法刪除多個相鄰的資料時,會出現漏刪和輸出資訊錯誤; 當刪除一個數據時,會出現輸出資訊錯誤。 例如: # 建立

【實用】JavaScript中Video使用詳解過程(多視訊列表迴圈播放)

做過一個專案裡有用到插入多個視訊類似列表迴圈播放的,視訊資訊是從後臺資料庫傳入的 核心JS程式碼片段 <script type="text/javascript"> var videoArray=new Array(); var relative

【前端】H5,底邊按鈕吸邊,但是覆蓋了列表迴圈的內容

我的說情況大致類似於:     PS:因為底邊那個模組 絕對是浮動的,所有會遮住列表最下面一條現實的一部分, 解決:這個時候把body的底邊的內邊距調整到可顯示的就可以了:   body { background: #F2F2F2;

安裝 ORACLE GRID 沒有顯示ASM 磁盤列表

asm原因:重新安裝操作系統,ASM磁盤保留了磁盤信息 處理步驟:[root@bbsvrrec ~]# oracleasm listdisksVOL1VOL2VOL3[root@bbsvrrec ~]# oracleasm deletedisk VOL1Clearing disk header: doneD

python列表迴圈、判斷小練習——購物車小程式

程式要求: 1.商品資訊儲存在檔案中。 2.列印商品資訊,包括名稱及編號,價格 3.輸入工資 4.選擇商品編號將商品放入購物車,並計算剩餘工資。 5.工資不夠時提醒餘額不足 6.將已購商品,餘額記錄長久儲存 7.列印已購商品名單 8.可以新增商品及價格   流程圖 &nbs

少說話多寫程式碼之Python學習033——迴圈語句03(列表導式)

列表導式是利用列表建立新的列表,比如,下面建立一個列表 a=[x*x for x in range(10)] print(a) 輸出 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 建立列表過程中也可以增加條件,比如,只要能被2整除的數。 b=[x*

Android RecyclerView一個一個自動滾動,無限迴圈,聊天列表效果,跑馬燈效果

實現效果 看到這個效果,看到很多人用ViewFlipper實現,但是效果並不理想,於是我想到用RecyclerView試試。 主要是監聽recyclerView滑動,開始和暫停來控制,廢話不多說,上程式碼。 自定義RecyclerView public class Auto

KMP_next陣列應用_迴圈元_POJ2185_Milking Grid

點此開啟題目頁面 思路分析:     設給定圖形可由AB子矩形重複而成, 稍一想便知, 給定圖形必定可由其最左上角的AB子矩形重複而成. 因此只需找到所有行(長度C)同時滿足S[1...k] = S[C - k + 1...C]的最大的k和所有列(長度為R)

WPF 迴圈顯示列表

專案需要類似手機上設定時間的控制元件,可以一直滾動顯示的內容連續的。在WPF中找到的列表控制元件只能滾到最後再反向滾動。 基於ScrollViewer和StackPanel來改造,Xaml如下: <Grid> <Grid.RowDefinitio

python變數/分支/迴圈/陣列/列表/元組/序列

       最近比較流行python,於是我這種從不趕潮流的人也決定跟一把潮流。工作原因學習時間有限,好容易擠著時間看了一部分網上的視訊,卻被勸說沒什麼用處,我們就是靠java吃飯的。當然多學一種語言也不會有什麼壞處,既然開始了,那就