国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

NGUI 翻頁

2019-11-09 17:29:41
字體:
來源:轉載
供稿:網友

簡單的實現了下NGUI的上下翻頁。有兩個接口,分別是上一頁和下一頁。

用法如下。

如上圖,第一個參數為 Page的寬或高,具體由你的滑動組件設定的方向定。

第二個參數為滑動系數,即,滑動了多遠就翻頁

第三個參數為總頁數。

依賴組件。UIScrollView,UICenterOnChild。

腳本和Scroll一起

分頁父物體綁上居中腳本。為Scroll的子物體

這個基本功能沒問題。但是有一個小缺陷。就是Panel的坐標必須為中心點。如果需要位移需要再加一個父物體。讓滑動組件依賴的Panel的相對坐標都為0.

原因是因為我用的坐標去計算的當前頁。大家如果有空。可以改為偏移量就能解決這問題。

因為我也用不上這個。這個是寫給學員參考的。所以就懶得改了。大家需要的改的話。可以自行修改。

最后。上腳本。

usingUnityEngine;usingSystem.Collections; publicclassYouKeTurnPage:MonoBehaviour{////// 每頁寬度(游-客-學-院)///publicfloat pageWidth;////// 翻頁力度(游.客.學.院)///publicintEffortsFlip=50;////// 總頁數///publicint pageNums=0; ////// 當前所在頁///publicint pageIndex{get{return mPageIndex;}}////// 當前所在頁///PRivateint mPageIndex=1;privateUIScrollView mScrollView=null;privatefloat nowLocation=0;private bool isDrag=false;private bool isSpringMove=false;privateSpringPanel mSp=null;private bool isHorizontal=true; voidAwake(){mScrollView= gameObject.GetComponent();if(mScrollView==null){mScrollView= gameObject.AddComponent();}mScrollView.onDragStarted=OnDragStarted;mScrollView.onMomentumMove= onMomentumMove;mScrollView.onStoppedMoving= onStoppedMoving;if(mScrollView.movement==UIScrollView.Movement.Horizontal){isHorizontal=true;}else{isHorizontal=false;}onStoppedMoving();}voidOnDragStarted(){isDrag=false;SetNowLocation();}void onMomentumMove(){if(isDrag)return;Vector3 v3= transform.localPosition;float value=0;if(isHorizontal){value= nowLocation- v3.x;if(Mathf.Abs(value)<EffortsFlip)return;if(value>0){if(mPageIndex< pageNums)Page(-pageWidth);}else{if(mPageIndex>1)Page(pageWidth);}}else{value= nowLocation- v3.y;if(Mathf.Abs(value)<EffortsFlip)return;if(value>0){if(mPageIndex>1)Page(-pageWidth);}else{if(mPageIndex< pageNums)Page(pageWidth);}}}voidPage(float value){isSpringMove=true;isDrag=true;mSp=GetComponent();if(mSp==null)mSp= gameObject.AddComponent();//mSp.enabled = false;Vector3 pos= mSp.target;pos= isHorizontal?newVector3(pos.x+ value, pos.y, pos.z):newVector3(pos.x, pos.y+ value, pos.z);if(!SetIndexPage(pos))return;SpringPanel.Begin(gameObject, pos,13f).strength=8f;mSp.onFinished=SpringPanleMoveEnd;Debug.Log("page index="+mPageIndex);}voidSpringPanleMoveEnd(){isSpringMove=false;}void onStoppedMoving(){isDrag=false;SetNowLocation();}voidSetNowLocation(){if(isHorizontal){nowLocation= gameObject.transform.localPosition.x;}else{nowLocation= gameObject.transform.localPosition.y;}}boolSetIndexPage(Vector3 v3){float value= isHorizontal? v3.x: v3.y;//Debug.Log((pageNums - 1) * pageWidth);if(isHorizontal){if(value>0|| value<(pageNums-1)*-pageWidth)returnfalse;}else{if(value<0|| value>(pageNums-1)* pageWidth)returnfalse;}value=Mathf.Abs(value);mPageIndex=(int)(value/ pageWidth)+1;returntrue;}#region 公共接口 游*客*學*院////// 上一頁///publicvoidPreviousPage(){if(isHorizontal){if(mPageIndex>1)Page(pageWidth);}else{if(mPageIndex< pageNums)Page(pageWidth);}}////// 下一頁///publicvoidNextPage(){if(isHorizontal){if(mPageIndex< pageNums)Page(-pageWidth);}else{if(mPageIndex>1)Page(-pageWidth);}}#endregion}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安阳县| 揭阳市| 新巴尔虎右旗| 呼伦贝尔市| 大城县| 太谷县| 望奎县| 吉木萨尔县| 通河县| 农安县| 开远市| 永丰县| 循化| 阿合奇县| 同心县| 都匀市| 桐梓县| 大荔县| 鲁甸县| 九龙县| 开鲁县| 策勒县| 紫阳县| 盘锦市| 清水县| 新和县| 同德县| 城市| 崇阳县| 安远县| 上杭县| 昂仁县| 普格县| 麦盖提县| 锦州市| 中西区| 万全县| 台江县| 北海市| 朝阳市| 德化县|