Tab商城实例

UIToggle 和 UIToggledObjects+ Box Collider(实现商城功能必备)

1.创建两个个UI Sprite,Sprite1和Sprite2

2.给Sprite1和Sprite2都添加UI Toggle组件和UI Toggled Objects组件,设置UI Toggle组件中的Group值一样,归为同一组,这样只能有一个被选择,就像男女只能选一个,再勾选Sprite1的Toggle组件的Starting State,设置为默认的Tab

3.再给Sprite1和Sprite2创建一个Label子节点,使用Unity字体,mysh字模。上面写菜单的名字

4.再给Sprite1和Sprite2添加碰撞器组件NGUI---->Attach---->Collider和按钮效果组件Button offset和Button scale

5.当鼠标经过这两个菜单时,会变大(Button scale),按下去的时候会偏移一小段距离(Button offset)

6.创建两个空节点Content1和Content2下面各带一个UI Label,写上道具Tab和坐骑Tab,再在Content1和Content2下面各带一个UI Sprite当作背景,调节Label的Z序Depth---->Forward,显示在背景前面

7.设置Sprite1的UI Toggled Objects组件里面的Activate属性,Size为1,然后把Content1拖到Element0中,Content2同理关联到Sprite2的UI Toggled Objects组件里面的Activate属性。

8.然后运行就可以看见,当鼠标点击道具时显示道具Tab面板,当鼠标点击坐骑时显示坐骑Tab面板

  

9.给Tab切换增加音效,给Sprite1和Sprite2添加音效组件Play Sound,关联好音效资源到Audio Clip

10.其实它控制的只是Content是否激活,点击其中一个就激活它并隐藏其他的Content

ScrollView滚动视图实例

ScrollView滚动视图,基于UIPanel实现 (实现商城功能必备)

1.创建一个Widget(所有NGUI控件的父类),NGUI---->Create---->Widget,把Sprite1和Sprite2、Content1和Content2一起放在Widget类型的Container节点下

2.再创建一个Widget,下面创建一个Scroll View控件子节点NGUI---->Create---->Scroll View,在Scroll View子节点下面再创建一个Grid控件子节点NGUI---->Create---->Grid,给Scroll View设置一个锚点可以让它和UI Root比例一样大

3.UI Grid是一个自动布局的工具,在Grid节点下再创建几个Sprite子节点,调整Grid的Cell Width和Cell Height可以改变每个Sprite子节点之间的间距

4.给Grid添加一个UI Center On Child组件,让它的孩子节点必须居中显示,有一些商城无论怎么滚动都是居中显示,就是用了这个组件,不会出现下面的拖动到一半道具图片停下来被分成两半的现象

5.给每一个Sprite子节点都加上Box Collider组件NGUI---->Attach---->Collider和Drag Scroll View组件,并且把父节点的父节点Scroll View拖进每个Sprite的Drag Scroll View组件的Scroll View属性中,变得可以拖动

6.再给每一个Sprite子节点都加上UI Center On Click组件,当点击两侧的时候也会跳转到前面一个或者后面一个的Sprite

7.选择Grid节点的UI Grid组件右上角设置的Excute执行脚本,让它帮我们自动排版Sprite

8.可以设置Scroll View节点的大小,来调节显示窗口,Scroll View越大,显示的道具图片越多

Tab商城和ScrollView滚动视图的组合

1.把整个Scroll View节点拖到Tab商城的Content1和Content2下作为子节点,再调整好位置,就可以实现组合效果

2.效果

3.后面可以把一个一个的Sprite做成Button,触发购买,跳出购买弹窗的事件

UI Center On Click组件代码

public class UICenterOnClick : MonoBehaviour
{
void OnClick ()
{
UICenterOnChild center = NGUITools.FindInParents<UICenterOnChild>(gameObject);//从所有父节点中找到UI CenterOnChild组件
UIPanel panel = NGUITools.FindInParents<UIPanel>(gameObject);//从所有父节点中找到UI Panel组件 if (center != null)
{
if (center.enabled)
center.CenterOn(transform);
}
else if (panel != null && panel.clipping != UIDrawCall.Clipping.None)
{
UIScrollView sv = panel.GetComponent<UIScrollView>();
Vector3 offset = -panel.cachedTransform.InverseTransformPoint(transform.position);
if (!sv.canMoveHorizontally) offset.x = panel.cachedTransform.localPosition.x;//在X方向上做一些偏移
if (!sv.canMoveVertically) offset.y = panel.cachedTransform.localPosition.y;//在Y方向上做一些偏移
SpringPanel.Begin(panel.cachedGameObject, offset, 6f);//开始偏移
}
}
}

打字机效果实例

UILabel 和 TypewriterEffect(游戏中的新手引导或人物的对话功能中)

1.创建一个UI Label,NGUI---->Create---->Label

2.添加Typewriter Effect组件,Char Per Second是打字机打字速度,Delay On Period每个周期之间延迟多少,Delay On NewLine每一行字之间延迟多少,Keep Full Dimension保持行的位置不会因为换行而移动。

关于Unity中NGUI的Tab商城、Scrollview和打字机效果的实现的更多相关文章

  1. 关于Unity中NGUI的背包实现之Scrollview(基于Camera)

    基于UIPanel的scrollview实现方式在移动设备上的性能不如基于camera的方式.因为UIPanel的scrollview实现方式要渲染很多的道具图,性能自然就降低了.如果是用第二个摄像机 ...

  2. 关于Unity中NGUI图片精灵响应鼠标的方法

    我在Unity里做NGUI的时候发现一个问题. 在Unity2D场景当中,一个精灵图片只要加上了Box Collider或者Box Collider2D,就可以相应OnMouseEnter和OnMou ...

  3. 关于Unity中NGUI的3D角色血条的实现

    首先要到Unity的Assets Store里面去下载一个扩展的Package叫NGUI HUD Text v1.13(81),注意如果没有安装NGUI就必须先安装NGUI插件,否则会用不了,因为HU ...

  4. 关于Unity中NGUI的Checkbox复选框、Slider滑动条和Button的6种触发回调事件的方式

    Checkbox复选框 1.创建一个NGUI背景Sprite1节点 2.打开NGUI---->Open---->Prefab Toolbar---->选择一个复选框节点,拖拽到背景节 ...

  5. 关于Unity中NGUI的Pivot和锚点

    Pivot 1.创建一个Sprite类型的Sprite1节点,关联一个图集和一张贴图,用图中的六个按钮调整这个贴图的Pivot点,一共有八个点可以选择 2.再创建一个Sprite类型的Sprite2节 ...

  6. 关于Unity中NGUI的帧动画和Tween动画

    帧动画 1.把三张帧动画的贴图png制作成图集,NGUI---->Open---->Atlas Maker,生成一个预制体,一个材质球,一个大图 2.创建一个Sprite类型的Sprite ...

  7. 通过改变unity中物体的alpha值实现若隐若现的效果

    RawImage logo = mainLogo.transform.FindChild("back/headBack/Logo").GetComponent<RawImag ...

  8. unity3d ppsspp模拟器中的post processing shader在unity中使用

    这个位置可以看到ppsspp的特殊处理文件位置来看看这些特效 用来测试的未加特效图片 ppsspp: 传说系列一生爱---英杰传说 最后的战士 aacolor 是关于饱和度,亮度,对比度,色调的调节, ...

  9. NGUI研究院之在Unity中使用贝塞尔曲线(六)[转]

    鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么MOMO迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是 ...

随机推荐

  1. Windows 下安装 swoole 具体步骤(php)

    Windows 下安装 swoole 具体步骤: Swoole,原本不支持在Windows下安装的,所以我们要安装Cygwin来使用.在安装Cygwin下遇到了很多坑,百度经验上的文档不是很全,所以我 ...

  2. adb monkey测试 命令

    adb shell monkey -p cn.com.linktrust.als.ipad 3500 LOWED_PACKAGE [-p ALLOWED_PACKAGE] ...] [-c MAIN_ ...

  3. R1题解

    估分 大佬们都去写题解了,我不写可能会被老师训诶.... 预计分数:100 + 100 + 5 + 100 + 25 + 100 = 430 实际 :80 + 100 + 0 + 100 + 25 + ...

  4. (转)【Java线程】Java内存模型总结

    Java的并发采用的是共享内存模型(而非消息传递模型),线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信.多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变 ...

  5. C++学习笔记43:STL

    STL简介(standard Template Library) STL的基本组件:容器(container),迭代器(iterator),函数对象(function object) 算法(algor ...

  6. ansible命令及模块

    ping 命令 #测试单个主机 [root@node1 opt]# ansible -m ping 10.0.0.22 #获取多个主机 [root@node1 opt]# ansible 10.0.0 ...

  7. cocos2d-x入门学习--准备篇

    1.Cocos2D最早是一款用Python语言开发的游戏引擎.Cocos2D是一个开源框架,用于构建二维游戏,演示程序和其他图形界面交互应用等. 2.x的包含两个意思:一方面是C++的文件扩展为CXX ...

  8. Guests组里的用户和其它组里的用户相比,在系统权限上有什么不同?

    系统的使用者主要分为:(以计算机管理员administrator 和普通用户User最为常用:一般个人电脑的话,不建议设置太多的用户,这样会影响系统的处理速度,增加许多的垃圾文件.) 1.Admini ...

  9. C++.Linux下redis编程:error while loading shared libraries: libhiredis.so.0.13

    编译 sudo gcc -o sltest01 sltest01.c -L/usr/local/lib/ -lhiredis 运行 sudo ./sltest01 编译成功后运行报错信息: ./slt ...

  10. Java编程最差实践(常见编程错误典范)

    转载自  http://macrochen.iteye.com/blog/1393502 每天在写Java程序,其实里面有一些细节大家可能没怎么注意,这不,有人总结了一个我们编程中常见的问题.虽然一般 ...