NGUI系列教程 第七部

[Unity][NGUI]3DUI如何实现 参考NGUI 阅读详情

转自:http://blog.youkuaiyun.com/jbjwpzyl3611421/article/details/10593791


今天我们通过一个综合的例子来讲解NGUI的3dUI 和ScrollView。本例结合是了NGUI官方自带例子中的Example 6 - Draggable Window和Example 7 - Scroll View (Panel)两个场景的内容来讲的,帮助大家更好的理解这两个场景的内容。如果大家对这两个场景都很精通的话,可以忽略此教程。最终实现结果如下图:

1.首先新建一个场景,通过菜单NGUI-->Open the UI Wizard 打开UI  TOOL 窗口,这次我们新建UI 的时候更改UI的camera选项,设置为Advanced 3D.如图

2.在Panel节点下新建三个Panel,分别命名为LagPos,AutoYaw,DragTilt,设置它们的层级关系为并且设置AutoYaw为 LagPos的子物体,设置DragTilt为AutoYaw的子物体。这里我们只是需要它们的Transform节点属性。可以把它们的UIPanel 代码删除掉。建立好之后,它们的层级关系如图:

3. 在DragTilt节点下新建一个Panel,作为我们所有UI元素的根节点命名为Panel_Root,然后再在它的节点下新建两个Panel。分别命 名为Panel_Controls,Panel_List。这里提醒大家,在做3D UI 的时候,一定要多用Panel,可以把同一组的UI元素放到一个Panel里。这样在控制的时候就会很方便,我们只要指定显示或者隐藏它们所在的 Panel就可以动态切换界面。还有一个要注意的就是在3D UI中,UI元素的Z轴位置属性是有用的。它们都是真实的3D物体。这意味着我们可以控制它们的Z轴位置和Z轴旋转。界面效果如图。

4. 下面我们开始为各个UI元素赋予属于它们的代码。首先为LagPos添加脚本 LagPosition。该脚本的作用在于我们移动panel的时候,它可以模拟一个缓冲的移动效果。然后是AutoYaw,为它添加脚本 WindowAutoYaw,该脚本的作用在于使物体在左右移动的时候自动旋转一定角度,实现透视效果。最后是DragTilt,为它添加脚本 WindowDragTilt。该脚本的作用在于使物体左右移动的时候,产生一定的旋转,模拟甩尾效果。大家有时间可以研究研究这三个代码。这里就不贴出 来了。

5. 我们要做的UI界面是一个可以随意移动并且自动旋转的3D的界面下,一排按钮可以左右拖动,但是只显示中间位置的几个。下面有一个Scroll Bar也可以拖动控制显示的按钮。我们先设置Panel_List 的显示区域。设置Panel_List 的UIPanel下的Clipping为SoftClip,并设置Clip框的大小。

接着我们在Panel_List 下新建几个按钮或者别的任何UI元素。不用调节它的位置。我们可以自动排列它的位置。秘密武器就是UIGrid脚本。为Panel_List添加脚本 UIGrid。这时Panel_List下的子物体会自动排列。我们可以通过UIGrid中的参数调节它的排列是纵向或者横向,还可以调节它的X,Y间隔 间距。

由于Panel_List是可以拖动的,我们要为它添加UIDraggablePanel。我们只想在横向左右拖动它,所以设置 UIDraggablePanel下的参数Scale为1.0.0。再往下看UIDraggablePanel的参数可以发现有 HorizontalScrollBar和VerticalScrollBar选项,它是用来让我们指定纵向和横向的ScrollBar的。UIGrid 和UIDraggablePanel的参数如图:

6.  现在我们要为UIDraggablePanel指定ScrollBar。在Panel_Controls节点下新建一个Scroll Bar。把它赋给刚才的UIDragablePanel下的HorizontalScrollBar。运行可以发现。我们已经可以拖动它,并且控制按钮位 置了。如图

7.现在我们发现,我们只能通过拖动滚动条控制按钮的位置。如果我们想鼠标在按钮周围的区域时,都可以拖动怎么办呢?这里我们就要用到 UIDragPanelContents了。首先我们在Panel_Controls下新建一个Spirit命名为 Spirit_DragContents,修改它的大小和位置。如图深色方块:

8. 为Spirit_DragContents添加一个Collider,菜单NGUI-->Attach a Collider。然后在添加脚本UIDragPanelContents。设置它的Dragable Panel为 Panel_List。这里有个要注意的地方就是Spirit_DragContents和前面的按钮的位置问题,我们新建的 Spirit_DragContents可能会遮挡住按钮。使我们无法点击。这里大家可以修改Panel_Controls和Panel_List的Z轴 位置,来调节它们的前后关系。这时候我们运行可以发现。我们已经可以在图中的深色区域拖动移动按钮的位置了。

9.现在我们来做一些工作使整个Panel移动起来,前面我们已经做好准备工作了。现在像上个步骤一样在Panel_Controls下新建一个Spirit命名为Spirit_DragPanel,调节它的大小和位置。效果如图中上部浅色区域。

10. 为Spirit_DragPanel添加脚本UIDragObject脚本,设置脚本中的Target为最先创建的Panel,也就是LagPos的父物体Panel。
最后为整个界面添加一个背景。新建一个Spirit,调节大小和位置作为整个界面的背景。

现在我们已经完成了所有的工作,运行程序,分别按住鼠标在顶部的Spirit区域和中间按钮周围的区域拖动,查看效果。
对比如图

总结:利用这个知识,我们可以做几个Panel滚动显示的效果,还可以模拟IOS或者安卓界面的滚动效果。大家可以自己试验一下。

[Unity]UGUI ScrollView ui特效遮挡的问题 当使用滚动列表的时候,例如商城,好友列表。我们要在每个列表Item上添加UI特效的时候(Particle System或Mesh Renender等)会发现特效并不能根据父控件的大小而裁减掉,如图:注:UGUI和NGUI都存在这个问题,NGUI则是在UIPanel Clipping 为Soft Clip时。我们要实现的效果是超框的部分也应该和其他UI一样被裁减掉。现在的思路是修改特效的shader... 阅读详情

相关推荐

NGUI系列

视频是从B站上看到的SIKI学院, 1.开发游戏 2.加入广告 3.推广游戏 4.赚取收益 添加UnityAds步骤 1.下载广告插件导入到Unity中 2.注册登录账号 https://unity.com/solutions/unity-ads 打开后登录账号 3.添加游戏,获取游戏ID(Game ID) ...

SaitamaTeacher的博客 987

NGUI系列教程七(3D视图&ScrollView)

今天我们通过一个综合的例子来讲解NGUI的3dUI 和ScrollView。本例结合是了NGUI官方自带例子中的Example 6 - Draggable Window和Example 7 - Scroll View (Panel)两个场景的内容来讲的,帮助大家更好的理解这两个场景的内容。如果大家对这两个场景都很精通的话,可以忽略此教程。最终实现结果如下图: 1.首先新建一个场景,通过菜单N

秋风扶柳笛的专栏 8496

【Unity&UGUI&NGUI】浅谈UGUI和NGUI两者的优劣

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- NGUI:

BuladeMian的博客,菜得抠脚,菜得真实 4090

【NGUI基础知识】—Scroll View(滚动视图)详解

https://www.fgba.net/sitemap.xml

iqifenxia的博客 3901

【Unity】NGUI下载与导入

Unity3D插件NGUI的下载和导入。

Get your hands dirty 3万+

Ngui中文字库创建实操教程.zip

在现代游戏开发中,高效且可定制的UI系统对于提供引人入胜的用户体验至关重要。Unity引擎提供了一个全面的解决方案,但在高级自定义和性能优化方面,Ngui UI库成为了许多开发者的选择。Ngui是一个强大的UI工具集,它增强了Unity的原生UI功能,允许开发者构建复杂且高度优化的用户界面。Ngui不仅仅是一个UI框架,它还提供了对TrueType Fonts (TTF) 和 OpenType Fonts (OTF) 的支持,这使得集成高级文本排版成为可能。

weixin_29940495的博客 852

unity shader,模型显示在NGUI上面并可以scrollview裁剪

模型显示在ui上面 如图显示模型 1设置模型的Layer为ui相机显示的值,这里设置为NGUI 2把模型拉近相机,不要被ui渲染遮挡 3需要放大模型因为NGUI的UIRoot会缩小 有一个问题就是我使用了Scrollview组件我希望ui被裁减时,模型也一起裁剪 自定义裁剪shader 1设置显示范围,超出这个范围就丢弃当前片段 这里我是全局设置一个裁剪范围 pu...

游戏天地 2842

Unity NGUI与UGUI学习教程合集

Unity是一个跨平台的游戏开发引擎,由Unity Technologies开发。自从2005年首次发布以来,它已经成为开发2D和3D游戏、模拟器以及其他实时互动内容的主要工具之一。它的普及得益于其易用性、跨平台能力以及庞大的社区支持。NGUI for Unity是游戏开发领域内非常流行的一个用户界面系统插件,被广泛应用于Unity 3D游戏开发中。它提供了一系列工具,用于创建各种交互式用户界面。NGUI主要特点包括高效、轻量级、以及高度可定制性。UI元素管理。

weixin_33759613的博客 986

Unity3D NGUI系列教程一

首先导入NGUI package,这里我们选用的是2.6.3版本的NGUI。在unity工程窗口中点击右键选择 Importpackageàcustom package,选择你下载的NGUI插件,导入完成后效果如图: 1.选择菜单NGUIàOpen the UI Wizard,弹出创建UI对话框。点击Layer窗口右边对应的按钮,弹出层选择对话框,在这里我们选择AddLayer

poem_of_sunshine的专栏 2万+

ugui 3D UI demo

3D UI 效果,经典款,本文件为unity4.6以上版本的ugui经典案例的一些demo,可下载直接导入unity项目学习和使用。

3D模型与NGUI 结合显示

本示例演示了一个3D模型显示在NGUI上的制作过程。

Unity3D之NGUI 系列教程(一)

首先导入NGUI package,这里我们选用的是2.6.3版本的NGUI。在unity工程窗口中点击右键选择 Importpackage àcustom package,选择你下载的NGUI插件,导入完成后效果如图:     1.选择菜单NGUIàOpen the UI Wizard,弹出创建UI对话框。点击Layer窗口右边对应的按钮,弹出层选择对话框,在这里我们选择Ad

仰望星空 3840

实例讲解MOS管电源开关电路的软启动

1、控制电源开关的输入信号 Control 为低电平或高阻时,三极管Q2的基极被拉低到地,为低电平,Q2不导通,进而MOS管Q1的Vgs = 0,MOS管Q1不导通,+5V_OUT 无输出。此时将 Control 设为低电平,三极管Q2关闭,电容C1与G极相连端通过电阻R2放电,电压逐渐上升到5V,起到软关闭的效果。不过从作者的描述来看,只是电路参数有区别,能通过的电流、能承受的耐压等不一样,但是软启动的原理是一样的。从公式可以看出,当电容容量越大,电压越高,时间越短,电流就会越大,从而形成浪涌电流。

U_YAO的博客 2万+

NGUI系列教程一

首先导入NGUI package,这里我们选用的是2.6.3版本的NGUI。在unity工程窗口中点击右键选择 Importpackage àcustom package,选择你下载的NGUI插件,导入完成后效果如图:      1.选择菜单NGUIàOpen the UI Wizard,弹出创建UI对话框。点击Layer窗口右边对应的按钮,弹出层选择对话框,在这里我们选择AddL

huang9012的专栏 3076

手把手教你用C#和LibUsbDotNet实现USB设备通信(含完整代码示例)

本文详细介绍了如何使用C#和LibUsbDotNet库实现USB设备通信,包括设备识别、连接建立、同步/异步数据读写等核心操作。通过完整的代码示例,开发者可以快速掌握USB通信的关键技术,适用于工业自动化、医疗设备等多种场景。重点讲解了数据读写优化和错误处理技巧,帮助提升通信效率和可靠性。

a3b4c5的博客 705

BERT之提取特征向量 及 bert-as-server的使用

本文内容列表提取句向量1、句向量简介1-1传统句向量1-2、BERT句向量2、 extract_features.py源码分析2-1 main函数 前一篇文章 BERT介绍及中文文本相似度任务实践 简单介绍了使用BERT进行中文文本相似度计算的方法,这篇文章着重对特征提取方法进行讲述。 提取句向量 1、句向量简介 1-1传统句向量 更多采用word embedding的方式取加权平均,该方法的一大...

ling620的专栏 1万+

Unity3d ngui基础教程

NGUI教程:步骤1-Scene         更多精彩请关注【狗刨学习网】       1.创建一个新的场景(New Scene)。       2.选择并删除场景里的MainCamera。       3.在NGUI菜单下选择Create a New UI,会打开UI创建向导。           

Carl180的专栏 1227

ScanNet数据集详解

ScanNet 是一个 RGB-D 视频数据集,在超过 1500 次扫描中包含了 250 万个视图,并标注了 3D 相机位姿、表面重建和实例级的语义分割。为了收集这些数据,设计了一个易于使用且具有扩展性的 RGB-D 捕获系统,包括自动化的表面重建和众包的语义标注。如果您想下载 ScanNet 数据,请使用您的机构邮箱地址填写一份 ScanNet 使用条款协议,并发送至 scannet@googlegroups.com。压缩包是将3D的标注信息“拍扁”成2D图片的结果,对应原始视频的每一帧。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 3919

NGUI基本控件的使用教程与实例

在前往下一章的学习之前,你可以尝试添加更多的控件,比如加入一个Sliced Sprite(一个含有9个切片的Sprite,创建固定边框的控件最佳选择),一个Tiled Sprite(一个Sprite缩放填充整个自定义区域)和Filled Sprite(每个Sprite都会有一个单独的参数来控制哪些是可见的,常被用来做进度条或者滚动条)。这个的模板只是为了方便而帮助你开始创建,当你真正使用NGUI的时候,你会经常花很多的时间来复制粘贴整个的小部件而不仅仅是用这个向导。现在,让我们创建第一个控件。

zzjlhlcd的博客 862

华三R4900 G5服务器实战:用PMC P460-B4阵列卡配置RAID1+RAID6,并搞定CentOS 7.9安装(含热备盘设置)

本文详细解析了在华三R4900 G5服务器上使用PMC P460-B4阵列卡配置RAID1+RAID6混合阵列的全过程,包括热备盘设置和CentOS 7.9系统安装。通过实战步骤和性能优化建议,帮助企业IT人员高效部署高可用存储方案,特别适合需要数据冗余和系统稳定性的企业级应用场景。

weixin_29248653的博客 357

excel 利用SUBTOTAL函数计算筛选后数列总和、均值、最大、最小值

表里有三个人,咱们需要筛选出三个人,并分别计算他们的总和值。 先看一下数据范围(A1:B27) 通过筛选找张三。 按照上图所示输入函数,选择9,求和。 然后按照函数输入即可。 就能计算出结果。 筛选项选择王五,就会自动计算王五的总和。 筛选到李四就会自动计算李四的总和。 如果把9改成1,就是自动计算筛选出来的均值结果,如下图所示。 如果改成4就是取筛选项的最大值,选择5就是取最小值。 ...

yuanYW7556的博客 3万+

NGUI系列教程二

接下来我们创建一个Label,NGUIàOpen the Widget Wizard,打开widgetTool对话框,在Template中选择Label,确定AddTo右侧选项为panel,点击,Add To完成Label创建。 1.Label属性窗口如图 1.下面的节奏可能有点快,大家可以先熟悉一下上面讲的流程,再进行下面的学习。接下来我们依次创建Button和Input,因为这两个

秋风扶柳笛的专栏 1万+

基于GA-BP遗传算法优化神经网络的多输入多输出数据预测-Python代码实现

多输入多输出的GA-BP神经网络

2301_80449389的博客 2306
上一篇: NGUI系列教程 第六部
下一篇: TransformDirection从自身坐标到世界坐标变换方向
我是一纸巾
博客等级 码龄12年 14粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值