ngui动态生成prite

来源:互联网 发布:张馨予坐台知乎 编辑:程序博客网 时间:2024/06/06 02:09
111111111.jpg 

1.首先建立一个960*640的背景参考效果如图:

2222222222.jpg 

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

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

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

333333333.jpg 

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

44444444444.jpg 

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

最下面是选择scroll bar(稍后会给加上)

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

55555555555.jpg 

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


5.给UIGrid添加子节点(这里我添加一个sprite,官网demo是item下再添加sprite。道理是一样)
a)添加sprite并给sprite加上uidragpanelcontents
并设置如图

6666666666666.jpg 

b)复制几个sprite

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

7777777777777.jpg 

7.panel(window)下添加scroll bar
同时要设置,如图


8888888888888.jpg 

8.添加两个button,动态添加UIGrid下的节点
效果展示下:

999999999999.jpg 

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. //得到grid对象 grid = GameObject.Find("UIGrid").GetComponent<UIGrid>();
  4. }
  5. void OnClick() {
  6. GameObject sprite = GameObject.Find("Sprite"); 
  7. if (sprite != null)
  8. { Destroy(sprite);
  9. grid.repositionNow = ***e; }
  10. }
复制代码

阿萨德发斯蒂芬.jpg 



原文链接:http://www.u3dchina.com/forum.php?mod=viewthread&tid=3157&extra=page%
0 0
原创粉丝点击