Unity3d之ScrollView實現圖片瀏覽切換功能----折磨的學習


由於項目需要,需要用NGUi實現一個圖片瀏覽切換的功能,於是參考官方NGUI例子的ScrollView做了一個例子,初始看上去基本實現了自己想要的功能。

但是測試后發現當隱藏其中一張圖片后,后面圖片不能自動跟上排列,於是折騰半天終於發現可以通過設置腳本的一個方法重置位置。

解決:UIGrid grid = (UIGrid)transform.GetComponent("UIGrid");

grid.Reposition();


此時可以讓位置重新排列,隱藏其中一張都沒問題了。

但是,接着測試又發現當第一張圖片和最后一張圖片隱藏時,圖片到最前最后一張拖動時,都會直接沒了,不會碰到邊界彈回來。這個問題折騰了一天,各種暈!

今天耐心把腳本的一個個參數設置過去,終於搞定了!

解決:在UIPanel腳本里面Clipping這項設置成softClip,並把size設置你圖片的大小,后面softness設置成圖片的一半(這個參數大家可以隨意調下,有不同效果)

還有在UIDraggablePanel腳本里面把Drag Effect 設置成None。


實現步驟:

1.創建一個NGUI 2D UI
2.重命名Anchor為Anchor-Center。添加UIDraggablePanel、SpringPanel腳本到ScrollPanel上
3.創建一個游戲空對象,重名名WindowRoot,移動到Anchor-Center下 ,並記得reset下

4.在WindowRoot下創建一個NGUI的panel,重名名為Panel-Clip

5.再創建一個游戲空對象,重命名UIGrid,並reset下

6.在UIGrid,再創建一個游戲空對象命名為hxt_C2_F1,reset下

7.在hxt_C2_F1,添加一個NGUI的texture,作為設置圖片的控件,然后復制3個,修改名字,如圖

8.為UIGrid添加,Component->NGUI->Interaction->Grid和Component-> NGUI -> Interaction -> CenterOnChild

9.接着為UIGrid的四個子對象,添加GUI->Attach a colliderComponent->NGUI->Interaction->Drag Panel Contents

10.接着為Panel-Clip添加Component->NGUI-> Interatcion->Draggable Panel

11.接着調整我上面講到的問題,設置相應腳本參數,還有圖片正常大小。

12.在UIGrid下綁定如下腳本內容:

void Start()

{

 

UIGrid grid = (UIGrid)transform.GetComponent("UIGrid");

grid.Reposition();

}

13.OK,幾乎不用寫代碼一個切換瀏覽圖片的功能就完成了!


感慨下,不懂腳本參數干嗎用的孩子,學習unity3d傷不起!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM