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
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脚本:


 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()    {
        //得到grid对象        grid = GameObject.Find("UIGrid").GetComponent<UIGrid>();

}

void OnClick()    {
        GameObject sprite = GameObject.Find("Sprite");        if (sprite != null)
        {            Destroy(sprite);
            grid.repositionNow = true;        }
    }


采坑总结:

一、新建一个对象的时候,需要确定这个对象的显示层级(Layer选项)一定要和NGUI摄像机设定的显示层级一样。

二、如果添加的Component中有摄像机选项的话,那么一定要检查摄像机一定要设置成NGUI的摄像机,因为一般场景里面除了NGUI的摄像机之外还有渲染场景物体的摄像机。

三、两个Panel不要设置为同一depth,不然各种调不对。

四、uidragpanelcontents和Colider一定要挂在同一个物体身上,不然不会响应拖拽事件,比如你在Grid对象下挂了一个Item对象,这个Item对象下面有一个Sprite,如果你把uidragpanelcontents放在Sprite上,把Colider放在Item上,那么是不会响应拖拽事件的。

NGUI之scroll view制作,以及踩的坑总结的更多相关文章

  1. NGUI之scroll view的制作和踩坑总结

    之前也看了不少童鞋谢了关于NGUI的scroll view的制作下面我写下自己的制作过程以及心得,希望对童鞋们有所帮助.1.首先建立一个960*640的背景参考http://game.ceeger.c ...

  2. NGUI例子Scroll View场景中item添加点击后自动滑到终点

    http://blog.csdn.net/luyuncsd123/article/details/22914497 最近在做一个项目的UI,需求是1.拖动items后当永远有一个item保存在中间位置 ...

  3. Unity 通过NGUI 完成单摄像机 制作地图

    本次思想主要是通过 Ngui的Scroll View 主要是UIPanel的Clipping属性的Alipha Clip 调节窗口大小,遮蔽地图试地图实现在屏幕的部分显示.此方法的好处是不用担心sha ...

  4. Unity NGUI制作scroll view

    unity版本:4.5 NGUI版本:3.6.5 参考链接:http://blog.csdn.net/monzart7an/article/details/23878505,作者:CSDN 冬菊子   ...

  5. NGUI系列教程十(Scroll View实现触摸滚动相册效果)

    NGUI中提供了两种Scroll View 一种是通过手指或鼠标滑动视图时移动平面物体,另一种则是直接移动摄像机,他们各有各的好处.但是NGUI提供的Scroll View很难实现类似Android ...

  6. NGUI 学习笔记实战——制作商城UI界面

    http://www.cnblogs.com/chongxin/p/3876575.html Unity3D的uGUI听说最近4.6即将推出,但是目前NGUI等UI插件大行其道并且已经非常成熟,所以我 ...

  7. (转)ngui3.5.7 版本Scroll View实现方法

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xyo123.blog.51cto.com/6369437/1405861 现在网 ...

  8. 关于Unity中stretch的分开使用、预制体、Scroll View的UI节点

    一.上次讲的菊花的四个花瓣,只讲了四个花瓣和在一起的时候的作用,现在是分开的菊花的四个花瓣的作用 1.创建一个Canvas2.对Canvas进行初始化3.创建一个Image的UI节点作为Canvas的 ...

  9. Scroll view 备忘

    Stroyboard中使用ScrollView 当我们使用Storyboard开发项目时,如果要往控制器上拖入一个ScrollView并且添加约束设置滚动区域,是有特殊的规定的: 拖入一个scroll ...

随机推荐

  1. js中的运动

    缓慢隐藏与出现 效果: 鼠标移至分享上黄色区域自动向左隐藏. <!DOCTYPE html> <html> <head> <title></tit ...

  2. No plugin found for prefix 'jetty' in the current project and in the plugin groups 【转】

    在maven进行jetty的调试中出现错误: [plain] view plaincopyprint? [ERROR] No plugin found for prefix 'jetty' in th ...

  3. 关于opacity透明度子元素继承现象的若干研究以及hack方法

    [感想]信息时代的信息是有时效性的,今天是确确实实感受到了.互联网资料虽然丰富,但是质量不一,还有大量的跟风雷同,很多人都是随手拷贝过来,根本没有实践.以前端为例,这两年浏览器的迅猛发展,造成很多原有 ...

  4. Json-转换

    js转换 引用json.js(将json格式转换成字符串 var name = document.getElementById("name").value; var retries ...

  5. Spring 常用注解

    用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册 <context:component-scan base-package=”pagkage1[, ...

  6. 【POJ 2485】Highways(Prim最小生成树)

    题目 Prim算法:任选一个点,加入集合,找出和它最近的点,加入集合,然后用加入集合的点去更新其它点的最近距离......这题求最小生成树最大的边,于是每次更新一下最大边. #include < ...

  7. SpringMVC数据库链接池,以及其他相关配置

    1.applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...

  8. KMP 算法总结

    KMP算法是基本的字符串匹配算法,但是代码实现上有一些细节容易错.这篇随笔将认真总结一下. KMP算法的核心是: The KMP algorithm searches for occurrences ...

  9. PL/0编译器(java version) - MainFrame.java

    1: /* 2: * To change this license header, choose License Headers in Project Properties. 3: * To chan ...

  10. ThinkPad紧凑型蓝牙键盘(0B47189)鼠标滚轮用法,F1到F12功能键的功能切换以及其他技巧

    入手小红点蓝牙键盘(ThinkPad Compact Bluetooth),手感极佳,小红点特别适合程序员工作,双手无需离开键盘就可以操作鼠标,完全解决肩部.腕部疲劳酸痛问题,程序员健康的大福音! 使 ...