Unity3d NGUI控件知识

NGUI的双点触摸缩放UI(模拟Camera变焦) NGUI的双触点UI缩放(模拟Camera变焦) 阅读详情
一、Panel
      
     更多精彩请关注: 【狗刨学习网】
     1、Alpha属性影响所有在panel下面的widget。所以可以用它来淡出整个窗口

     2、如果你的UI需要被灯光影响,需要勾选上Normals。

     3、没有panel所有东西都不能够被渲染出来。如果你对Unity熟悉,你可以把UIPanel当做Renderer

     4、Panel会根据dimensions自动Clip所有它的子节点。使用这个功能需要选择Clipping下拉列表中的任意选项,之后调整Scene View中紫色矩形的尺寸,就像调整widget的尺寸一样。通过这样做你可以把一个panel放到Scroll View中,让他轻松的拖拽。

     5、一个动力学Rigidbody会自动增加到你的panel上,因为对于Unity来说这样会提升性能。移动静态的collider会有很多消耗性能的操作,但是移动rigidbody就不会。

二、Camera

     1、UICamera真正做的事情是发送NGUI事件给所有被当前camera渲染的object,camera是UICamera脚本所在的那个。 其实这个脚本做的事情和UI无关。事实上如果你想让游戏里面的object接收OnPress、OnClick、OnDrag等这类事件,你需要把UICamera挂在你的主相机上

     2、UICamera的选项Event Type用来决定脚本如何排序mouse或者touch触发的事件。如果是UI模式,这些事件顺序基于widget的depth——和渲染顺序一样。如果UICamera挂到了Main Camera上,那么就需要把这个选项修改成World模式。这样就会根据与相机的距离来排序点击到的object。

     3、Event Mask用来决定哪些层会接收事件。大多数情况下你需要的就是“Everything”,这个值会与UnityEngine.Camera's Culling Mask进行逻辑与运算,有需要的话你可以微调这个值。如果你修改了UI的game object的Layer,记得调整Event Mask,否则你可能会发现UI不响应事件。

     4、Allow Multi-Touch选项用来控制是否支持多点触碰。如果勾选掉,多点触碰也会当做单点触碰。
小贴士

     UICamera发送以下事件给collider:

  • OnHover (isOver) 发送时机为鼠标悬停(只触发一次)或者离开collider。
  • OnPress (isDown) 发送时机为鼠标在collider上按下。
  • OnSelect (selected)发送时机为鼠标点击和松开的时候都在同一个object上。
  • OnClick ()发送时机和OnSelect一样,但是要求鼠标没有移动特别多。UICamera.currentTouchID表示按下的鼠标哪个键。
  • OnDoubleClick ()发送时机为当在四分之一秒内click两次的时候。UICamera.currentTouchID表示按下的鼠标哪个键。
  • OnDragStart ()发送时机为OnDrag()事件之前。
  • OnDrag (delta) 发送时机为一个object被拖拽。
  • OnDragOver (draggedObject)发送时机为其他的object拖拽到他的上面。
  • OnDragOut (draggedObject)发送时机为其他的object拖拽出他的上面。
  • OnDragEnd ()发送时机为drag事件结束。发送给被拖拽的object。
  • OnInput (text)发送时机为输入的时候(在点击选择了一个collider之后)。
  • OnTooltip (show) 发送时机为鼠标悬停在一个collider上一段时间没有移动。
  • OnScroll (float delta)发送时机为鼠标滚轮滚动。
  • OnKey (KeyCode key)发送时机为键盘或者输入控制器被使用的时候。

三、UIGrid

     1、Arrangement的值决定了子节点的摆放位置。Horizonta让子节点向右排列,Vertical向下排列。

     2、Max Per Line属性控制Horizontal排列时候的最大有多少列, Vertical排列的时候最大有多少行。

     3、Cell Width和Height决定了所有条目的间隔。

四、UILabel

     1、修改Pivot来改变label的对齐方式。Top-left、Left和Bottom-left是左对齐。Top、Center或者Bottom是中间对齐。Top-right、Right、Bottom-right是右对齐。

     2、Overflow操作让你决定lable的文本超过允许的空间之后的处理方法。
  • Shrink Content 内容自动缩放。与Keep Crisp设置一起来控制Dynamic字体,使字体的字号变小而不是简单的缩放。这样不管label是否被缩放都能保持清晰。
  • Clamp Content 剔除多余的文本。
  • Resize Freely 根据输入的文本内容自动调整dimension。不需要手动调整。
  • Resize Height 保持宽度不变,必要时增加高度。

     3、文本可以有shadow或者outlineEffect。shadow会使用两倍的geometry,outline会使用五倍——所以要小心这个属性。Distance参数控制shadow或者outline与原文本的距离,以像素为单位。

     4、运行时修改文本,你可以通过以下方法:
     
      UILabel lbl = GetComponent<UILabel>();

      lbl.te   xt = "Hello world!";


注意事项      1.UILabel彩色字标签失灵

       A:有时候会发现UILabel的[ffffff][-]这样的色彩标签突然不起作用了,那你要检查一下是不是Widget的Color设置了颜色,改成白色就正常了!

     2.Encoding属性不见了


       A:是的,新版本中Encoding属性取消了,取而代之的是BBcode!
五、Button

      1、Button组件可以挂在任何有collider的game object上。不需要一定挂在widget上。

      2、渲染挂着Button组件物体的摄像机,需要有UICamera组件,这样Button的各种事件才能生效,因为所有事件是由UICamera发出的

      3、Button接收鼠标hover、press和click事件,然后修改Target属性的颜色。Target通常是widget(sprite、label或者texture),但是也可以是有Light组件的物体,或者是Renderer。
小贴士

      通常把Button组件放在按钮的背景sprite上。快捷键ALT+SHIFT+C快速添加collider,之后勾选sprite的”Box Collider“选项,这样box collider就可以自动缩放到和sprite大小一样。

六、UISprite

     1、Sprite Type为Filled,这样可以做一个类似冷却的进度条。

     2、Sprite Type为Tiled,这样你的sprite会重复的填充一块区域。尽量不要用太小的sprite因为这样会创建很多的三角形。给你的sprite一个1像素的border也是个好主意,这一个像素会被排除掉(所有tiled的图的边缘看起来就衔接起来一样)。

      3、Sprite Type为Sliced就可以创建一个9-slicing的sprite。只有指定了Border后它才会真正起作用。(点击上面提到的Edit按钮)。sliced sprite的一个应用就是做按钮的背景。

      4、使用”Make Pixel-Perfect“选项(新版本是Snap)来让UISprite 使用它的原始尺寸。就是如果你的原始texture是300*200的像素,UISprite的dimensions对应的width和height就会调整到这个数值。 注意这个对Tiled和Sliced sprite没有效果——它们有自己的规则。

      5、Tiled Sprite会自动平铺到整个精灵的大小内,适合使用无缝贴图制作背景。

      6、Sliced Sprite填充完整个的Sprite区域,固定大小,不会随图片大小而改变。(有人说这个适合用来作角色的头像显示)

Unity3d_NGUI和UGUI的学习 由于之前刚入门的时候,应Unity3d整体发展的要求我们自学了UGUI(相对来说UGUI比NGUI做得更好一些,后面会有2者对比),但是后来公司要求使用NGUI,所以我这边把之前学习UGUI(不全,当时资源有限)和NGUI的学习心得什么的整理一下。学习UI,基础差的看一些教程,基础好的可以直接查看官方案例,根据案例上的相关功能自己做,有什么不懂的参数或者小知识网上问一下,向他人请教也是可以的。 阅读详情

相关推荐

Unity3D种UGUI与NGUI的对比差别(1)

渊源 先来段小八卦,听说UGUI的主创人员是从NGUI招过去的,所以,UGUI中有很多概念,对于用过NGUI的童鞋来说,看起来都似曾相识。 先来个概念对比: NGUI UGUI 锚点 Anchor RectTransform Anchor 图片 Sprite Image 文字 Label Text 根节点 UIRoo

2万+

unity_NGUI动态字体制作与字体清晰的几点要素

1、需要制作动态字体,这样支持字体清晰输出。 2、字体Size必要时需要调大。 3、Keep crisp注意设定为Never。 动态字体制作: 1、添加ttf字体进工程,可以在控制面板里找到。 2、创建一个空GameObject,重命名随意如DynamicFont。 3、在这个空物体上挂上UIFont脚本。 4、创建一个叫DynamicFont_Mat的材质。 5、在Dyn

2262

unity3D游戏开发十四之NGUI一

在Unity中,可以使用代码控制其自身所携带的GUI来sh

wangdaren的专栏 1万+

Unity 利用NGUI实现一个简单摇杆

unity NGUI摇杆实现 touch

SmillCool的博客 845

【Unity3D插件】NGUI屏幕自适应

屏幕自适应 NGUI可以比较方便的实现屏幕自适应,但是它的官方教程里面针对这个问题没有详细的教程,所以可能在实现的时候会走比较多的弯路。以下是我在开发过程中找到的一个比较方便的实现方法。 主要组件 1. UIAnchor 这个是用来确定控件在屏幕中的位置,另外有一篇教程专门讲它的功能,所有不会再赘述 2. UIStretch 这个是用来做缩放的组件。老版本的NG

程序猿和人 3万+

Unity3D种UGUI与NGUI的对比差别(2)

层级管理概念 UGUI采用Hierarchy排序的方式,替代了NGUI中的Depth排序。 更精准的说,NGUI的排序是通过Depth、Z值、RenderQueue共同影响的,整体规则过于复杂;而UGUI采用的排序比较简单,在Canvas内部元素采用Hierarchy方式排序,在Canvas同级之间通过Sort Order或者是Hierarchy来进行排序;UI的组织方式,就是层级的可见顺

5535

unity3D游戏开发十五之NGUI二

接下来我们讲解下UILabel,UILabel是用来显示文本的脚本,继承自UIWidget。

wangdaren的专栏 9522

unity3d之checkbox控件的封装

原创不易,转载请注明转自 :  -----kosion

u012413679的专栏 3444

Unity3d NGUI的使用(二)(UILabel中文字体及可点击的字体)

用Unity3d NGUI可制作出字体可点击的效果,点击打开网站链接 还有中文字体的显示,可以直接调用系统内置字体,不需要第三方的字体支持 UILabel(Script 参数说明) 第一项字体选项,NGUI使用的是静态字体,当我们需要显示中文时,最好使用动态字体,或者自己也可以制作静态字体集 Font Size: 字体大小 Material:字体贴图素材,如需要彩色字体

Unity3d 攻城师一枚 1万+

Unity3D NGUI Localization国际化

首先先要感谢前人做的巨大贡献,这部分在一些论坛上都有教程,我也是看着那些慢慢学的,不过通过自己的制作,还是发现有些说的不是很到位,所以把自己的一些见解写出来供大家参考。 这里就以中英文两种语言举例说明。 在制作游戏国际化之前,首先需要把素材都准备好,需要一个同时支持中文字体的TTF格式的字库,可以到电脑的C盘里有个字库文件夹,挑一个支持中文的字体就好了(英文字母肯定支持的),或

wangdi的游戏社区 7884

Unity3d使用 NGUI 做球形三维旋转 UI

因为工作的需要研究了一下NGUI做

chauvae的专栏 5412

FlappyBird开发总结(一)—— 开发前所必备

FlappyBird这个游戏说白了也就是一堆碰撞器和触发器的结合,我做的是无限模式的,就是几张图片一直循环。我这里用的是4张相同的prefab进行循环拼接,因为我做的是横版,所以三个有点不大够用,不过如果做的是竖屏版的用到3张进行循环拼接到是够了。 好了,这篇博客主要是进行下总结,哈哈,因为我在看神雕侠侣哈,没办法,得方松下,最近用Unity3D搞得没休息过(菜鸟学习的悲哀啊~因为好多新奇的问题

Arboo Blog 4002

BUUCTF--[OGeek2019]babyrop

才学习了基本的ROP流程,到处找题练,不过也没做出来几道题,以这道32位的题作为例题吧。 这道题是BUUCTF上pwn练习题里的[OGeek2019]babyrop。 代码审计 老规矩先checksec一下: 没有canary保护,nx保护开启排除shellcode可能性,FULL RELEO为地址随机化。 观察主函数,先设定了一个闹铃,到时间就会强制退出程序,解除闹铃的方法在上一篇博客中提到过了, 这道题中闹铃函数依然对我们解题起不到什么干扰作用。 主函数的思路大概是:生成一个随机数,把这个随机数作为

N1rvana的博客 6004

Unity3D NGUI的使用

首先NGUI属于Unity3D的插件,需要先导入资源包,导入完成后工具栏出现NGUI选项 使用方式 第一步:创建画板 1. 点击工具栏上的NGUI选项 2. 选择Create 3. 选择2DUI 第二步:选中UIRoot 4. 在画板上右键点击 5. 选择Create 6. 常用的UI组件 第三步:查看NGUI自带的UI预设体 7. 点击NGUI 8. Ope

BattleTiger的博客 6197

顶会新宠!Gate+Attention创新思路发A会

性能提升:在Places2自然场景和CelebA-HQ人脸数据集上,与以往方法相比,该系统在自由形式掩码修复任务中取得了更高的质量和更低的误差(例如,平均ℓ1误差和ℓ2误差显著降低)。硬件效率提升:Griffin和Hawk在TPU-v3上的训练效率与Transformer相当,且在推理时具有更低的延迟和显著更高的吞吐量。门控卷积:提出了一种新的门控卷积机制,通过学习每个通道在每个空间位置的动态特征选择机制,解决了传统卷积将所有输入像素视为有效像素的问题。

2501_92785035的博客 974

三极管、MOS管和晶体管综合对比——《器件手册--三极管、MOS管和晶体管》

IGBT(Insulated Gate Bipolar Transistor,绝缘栅双极型晶体管)是一种复合全控型电压驱动式功率半导体器件,结合了MOSFET的高输入阻抗、开关速度快的优点和双极型晶体管(BJT)的低导通压降、高电流密度的优点。例如,在NPN型三极管中,当基极电流增加时,集电极电流会按照一定的比例(放大倍数β)增加,这个比例通常在几十到几百之间。在NMOS管中,当栅极相对于源极的电压(Vgs)小于开启电压(Vth)时,漏极和源极之间没有导电沟道,电流无法通过,处于截止状态。

XU157303764的博客 2879

Unity3D开发(七):NGUI之UICamera控制触摸,鼠标事件

先给论坛做个广告:点击打开链接 1. UICamera 功能介绍 主要包括UI事件的监听,分发,覆盖范围为此Camera渲染的所有GameObject。 事件源包括:鼠标,触摸,键盘,手柄。 事件包括:悬停,按下/抬起,选中/取消选中,点击,双击,拖拽,释放,文本输入,Tips显示,滚轮滑动,键盘输入。   2. UICamera 实现流程 (1)属性   Event T

oneRain88的专栏 3万+

Unity3D实现自定义河流路径或泥石流路径

此工具是一个插件,插件很好用,可以根据地形编辑河流的走向以及宽度,也可以发挥想象编辑成其他的效果,比如泥石流效果,岩浆效果,小溪,或者大江或者大河等等博客将会介绍可以编辑河流的工具的使用。希望这篇博客对Unity的开发者有所帮助。大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。提示:以下是本篇文章正文内容,下面案例可供参考本次总结的就是工具的使用, 有需要会继续增加功能不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒!

心疼你的一切博客 5264

Unity3d NGUI 十六进制颜色转换

使用RGB的十六进制来设置颜色,在工作中减少了颜色的输入次数。在项目使用开发同事从美术同事拿到的颜色表基本上都以十六进制来表示。本人目前用版本为Unity3d4.6.7,未发现在Color面板中能进行十六进制颜色转换,也未发现能通过编写扩展代码调整Color在Inspector中的GUI显示。 Unity3d4.6.7 NGUI3.8.2 下文假设你已经对Untiy3dEditor.Editor和N

阿毛 7442

把时间当成数据:SAP ABAP 里的 DATS/TIMS 与 DATN/TIMN,怎么选才不踩坑

SAP项目中日期时间字段的陷阱与优化 日期时间字段(DATS/TIMS)在SAP项目中看似简单却常引发事故,主要问题包括: 非法日期(如20201331)入库后,在月结、对账时爆发异常 空值被处理为00000000导致排序错误 ABAP提供两种处理方案: 经典类型DATS/TIMS:存储为字符格式,校验宽松易存脏数据 HANA原生类型DATN/TIMN:数据库级校验,写入即拦截非法值 优化建议: 在接口层和入库前进行严格校验 新项目优先使用DATN/TIMN类型 对遗留数据使用DATS_IS_VALID等函

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 182

大模型——Dify:知识库与外部知识库

摘要 Dify的知识库功能为开发者提供了动态知识管理解决方案,超越了大模型静态预训练数据的限制。知识库支持多种文档格式(如txt、pdf、docx等),通过文档分段、索引设置和检索优化机制提升LLM的响应准确性。系统提供高质量和经济两种索引模式,前者采用向量化检索技术,后者使用关键词匹配以降低成本。知识库支持元数据管理,包括自动生成的内置元数据和用户自定义元数据,便于内容分类和检索。对于高级需求,Dify还支持连接外部知识库,通过API实现跨平台数据共享和检索优化,满足企业级知识管理需求。

727

【Unity3D插件】NGUI基础学习笔记

【Unity3D插件】NGUI基础学习笔记 1、DrawCall:在Unity中,每次引擎准备数据并通知GPU的过程称为一次Draw Call。Draw Call值越低,会得到更好的渲染性能。 Draw Call Tool:NGUI--》Open--》Draw Call Tool,可以查看DrawCall的一些信息。 影响DrawCall的因素: Atlas数量 Font动态

活到老,学到老! 4717

STM32F4 SPI FLASH(W25Q128)驱动详解(含DMA+完整读写擦除+低功耗)

本文实现了一款基于STM32 HAL库的SPI Flash驱动,以W25Q128为例,提供了完整的初始化、读写、擦除、ID读取等功能。驱动集成了DMA传输、超时保护、页对齐写入等特性,支持扇区擦除、整片擦除、页写入及跨页缓冲写入。代码结构清晰,易于移植到其他SPI Flash型号(如W25Q64、W25Q16等),适用于数据存储、固件升级、文件系统等嵌入式场景。

kevin1499的博客 96

Unity3d NGUI 子控件之屏幕自适应

作为Unity3d的初学者,遇到了许多的问题,相信很多的人都遇到了屏幕自适应的问题,现在网上的NGUI自适应说的很多,大多都是些复制粘贴的水贴。借着国庆,研究了两天,把经验分享给大家,希望对大家有用,本人用的NGUI版本是3.6.7  Unity使用的是4.3.4f1. 第一步: 创建自己的UI 在Hierarchy试图中可以看到 第二步: 在Camera下面创建(creat

u012756205的专栏 1018

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: Unity3D 3.5寻路API简单介绍
下一篇: Unity3d ngui基础教程
Carl180
博客等级 码龄12年 16粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值