下面是我找到的关于ngui scrollview的制作过程。希望对有需要的同学有帮助。

1.首先建立一个960*640的背景参考

效果如图:


先借用下三国杀的背景图哈,原图大小是960*640,因为我做的both缩放,很不错的.

2.随便做一个atlas。资源在网上随便找一个,等下作为滑动对象。

3.a)在panel下建立两个空的游戏对象,其中pane(view)是等下要展示的view的部分,panel(window)为辅助view展示的,如图


b)给panel(view)添加uidragable panel(script)并设置参数,如图


备注:clipping选择soft clip
size为你需要展示拖动区域的大小,我的展示区域是横向拉动,满屏,图集高度为280.我这里设置稍微大点。就给了300
最下面是选择scroll bar(稍后会给加上)

4.

a)在panel(view)中新建一个空的游戏对象命名为UIGrid
b)给UIGrid添加uigrid脚本

c)设置uigrid脚本参数


备注:uigrid会对其子对象默认排序...
cell width;cell height指在scroll view中的排列的(或者你认为是uigrid的子对象)元素的高和宽

5.给UIGrid添加子节点(这里我添加一个sprite,官网demo是item下再添加sprite。道理是一样)

a)添加sprite并给sprite加上uidragpanelcontents

并设置如图


b)复制几个sprite

6.给panel(window)加一个拉动区域

如图:


7.panel(window)下添加scroll bar

同时要设置,如图


8.添加两个button,动态添加UIGrid下的节点

效果展示下:


9,给button写脚本

add脚本:
  1. public UIGrid grid;
  2. void Start()
  3. {
  4. //获得UIgrid节点
  5. grid = GameObject.Find("UIGrid").GetComponent<UIGrid>();
  6. //panel = GameObject.Find("Panel-view").GetComponent<UIPanel>();
  7. }
  8. void OnClick()
  9. {
  10. //载入新的atlas
  11. UIAtlas atlas = Resources.Load("cardt", typeof(UIAtlas)) as UIAtlas;
  12. //设置父节点
  13. GameObject parent = GameObject.Find("UIGrid");
  14. //添加
  15. UISprite sprite = NGUITools.AddSprite(parent, atlas, "nvyao");
  16. sprite.MakePixelPerfect();
  17. //重设uigrid
  18. grid.Reposition();
  19. }
 del脚本
  1. public UIGrid grid;
  2. void Start()   
  3.  {
  4. //得到grid对象       
  5. grid = GameObject.Find("UIGrid").GetComponent<UIGrid>();
  6. }
  7. void OnClick()   
  8.  {
  9. GameObject sprite = GameObject.Find("Sprite");       
  10.  if (sprite != null)
  11. {           
  12.  Destroy(sprite);
  13. grid.repositionNow = true;       
  14.  }
  15. }