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保持行的位置不会因为换行而移动。

转载于:https://www.cnblogs.com/HangZhe/p/7446381.html

关于Unity中NGUI的Tab商城、Scrollview和打字机效果的实现相关推荐

  1. 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP | ShaderGraph | Decal)

    本文最终效果 文章目录 一.前言 二.环境准备 1.URP环境准备 2.技能范围图案 二.方案一:写Shader实现 1.Shader脚本:UrpDecal.shader 2.材质球 3.创建Cube ...

  2. 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP ShaderGraph Decal)

    本文最终效果 文章目录 一.前言 二.环境准备 1.URP环境准备 2.技能范围图案 二.方案一:写Shader实现 1.Shader脚本:UrpDecal.shader 2.材质球 3.创建Cube ...

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

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

  4. unity中NGUI与UGUI的区别?

    什么是UI? UI即User Interface(用户界面)的简称.泛指用户的操作界面,UI设计主要指界面的样式,美观程度.而使用上,对软件的人机交互.操作逻辑.界面美观的整体设计则是同样重要的另一个 ...

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

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

  6. unity中怎么做河流_unity3d如何使用水效果 看完你就知道了

    我们玩游戏时,常常会在游戏中看见河流,湖泊,大海等水效果,这些效果也让游戏更加逼真,更加美丽.那么如何在unity3d中使用水效果呢?下面简单介绍一下. 工具/材料 unity3d软件 操作方法 01 ...

  7. Unity中实现Scene模式下的鼠标操作效果

    using System.Collections; using System.Collections.Generic; using UnityEngine;   public class Camera ...

  8. Unity 中实现子弹时间效果

    在以前,学习xna游戏框架时,由于xna封装的游戏元素很少,很多功能,只能自己去写一篇: 如:子弹时间效果: 先来介绍一个何为"子弹时间"效果: 这得始源于:著名科幻电影<黑 ...

  9. 在Unity中为即时战略游戏实现战争迷雾(上)

    本文将由游戏开发工程师Ariel Coppes分享在Unity中为即时战略游戏实现战争迷雾效果. 过去三年中,我一直在Ironhide Game Studio开发移动即时战略游戏<钢铁战队> ...

最新文章

  1. 信息记录拉取失败_天猫入驻为什么失败?猫店侠做详细解读
  2. 网络工程师_记录的一些真题_2016上半年上午
  3. Linux(RHEL7及CentOS7)下glibc版MySQL5.7.20的安装
  4. How to create a simple 2D graphics program?
  5. jQuery 实现上下,左右滑动
  6. 在ExtJS的ComboBox组件中实现下拉树效果
  7. LVDS DP等显示器接口简介
  8. java咖啡机故障5_【咖啡小常识】咖啡机不得不知道的常见故障及解决方法
  9. 大道五目Flash英文版(Renju Problems)程序分析之禁手判断
  10. 各種語系的unicode對應以及local編碼方式
  11. ios app开发简单实例--源代码管理的基本操作
  12. 图像 super-resolution restruction 的各种主流实现方式
  13. c++ 时间类型详解(time_t和tm)
  14. windows/ubuntu系统下安装teamview教程
  15. 真无线蓝牙耳机选购小技巧!2020五款优秀低延迟蓝牙耳机推荐
  16. 大数据项目(二)————某电信公司通话记录改造
  17. range函数用法完全解读
  18. HC06蓝牙2.0模块连接不稳定 和 STM32串口不传输数据(串口接收中断)的一些问题
  19. 如何打造一直具有战斗力的高效团队?
  20. 用计算机算出90除以6.28,三年级下册数学测试题(全套)电子教案(28页)-原创力文档...

热门文章

  1. 输入年月日,计算当年的天数
  2. php oracle 怎么样,php-oracle
  3. element ui select框实现ctrl+c 和ctrl+v的功能
  4. (10)雅思屠鸭第十天:写作口语词汇搭配
  5. 后台管理系统问题记录
  6. DNS域传送漏洞(一)
  7. Java中对this的理解
  8. 回溯算法:0-1背包问题
  9. 设计模式——单例模式
  10. 精选“数据分析”好问题汇总·第三期