http://blog.csdn.net/monzart7an/article/details/23878505
链接:
http://game.ceeger.com/forum/read.php?tid=5517
之前也看了不少童鞋谢了关于NGUI的scroll view的制作
下面我写下自己的制作过程以及心得,希望对童鞋们有所帮助。 1.首先建立一个960*640的背景参考http://game.ceeger.com/forum/read.php?tid=5314 效果如图:先借用下三国杀的背景图哈,原图大小是960*640,因为我做的both缩放,很不错的. 2.随便做一个atlas。资源在网上随便找一个,等下作为滑动对象。 3.a)在panel下建立两个空的游戏对象,其中pane(view)是等下要展示的view的部分,panel(window)为辅助view展示的,如图 b)给panel(view)添加uidragable panel(script)并设置参数,如图 备注:clipping选择soft clip b)复制几个sprite 9,给button写脚本 public UIGrid grid; void Start() { //获得UIgrid节点 grid = GameObject.Find("UIGrid").GetComponent<UIGrid>(); //panel = GameObject.Find("Panel-view").GetComponent<UIPanel>(); } void OnClick() { //载入新的atlas UIAtlas atlas = Resources.Load("cardt", typeof(UIAtlas)) as UIAtlas; //设置父节点 GameObject parent = GameObject.Find("UIGrid"); //添加 UISprite sprite = NGUITools.AddSprite(parent, atlas, "nvyao"); sprite.MakePixelPerfect(); //重设uigrid grid.Reposition(); } del脚本 public UIGrid grid; void Start() { } void OnClick() { |
|
采坑总结:
一、新建一个对象的时候,需要确定这个对象的显示层级(Layer选项)一定要和NGUI摄像机设定的显示层级一样。
二、如果添加的Component中有摄像机选项的话,那么一定要检查摄像机一定要设置成NGUI的摄像机,因为一般场景里面除了NGUI的摄像机之外还有渲染场景物体的摄像机。
三、两个Panel不要设置为同一depth,不然各种调不对。
四、uidragpanelcontents和Colider一定要挂在同一个物体身上,不然不会响应拖拽事件,比如你在Grid对象下挂了一个Item对象,这个Item对象下面有一个Sprite,如果你把uidragpanelcontents放在Sprite上,把Colider放在Item上,那么是不会响应拖拽事件的。