Unity学习日志_NGUI简介

article/2025/9/29 20:31:30

Unity学习日志_NGUI简介

NGUI仅支持相机模式。

UIRoot

UIRoot类似于UGUI中Canvas的UI Scaler组件,负责缩放模式调节。

在这里插入图片描述

属性:

  1. Scalling Style:
    1. Flexible:旧版本叫PixelPerfect,指永远保持图片自身像素大小不变。适合PC
    2. Constrained:旧版本叫FixedSize,永远保持图片在Panel中的比例不变。适合手机
    3. ConstrainedOnMobiles:前两种的集合体。

UIPanel

UIPanel类似于UGUI中Canvas的Canvas组件+RectTransform组件。

在这里插入图片描述

属性:

  1. Alpha:透明度。
  2. Depth:渲染深度。
  3. Clipping:裁剪模式。
  4. Sorting Layer:渲染层。

UICamera

UICamera类似于UGUI中的EventSystem,负责NGUI的UI事件。
在这里插入图片描述

注:NGUI实现交互的前提是碰撞器。

NGUI图集制作

与UGUI不同,NGUI必须先选择一个图集(Atlas)后选择图片,所以在NGUI上,我们就需要制作自己的图集。

在这里插入图片描述

打开AtlasMaker,点击右侧的X号或者New来创建一个新的图集,当然也可以使用现有图集。

在这里插入图片描述

选择若干图片,AtlasMaker会自动将图片添加进来。
在这里插入图片描述

点击Create创建图集,完成后,你将可以在保存的文件夹中看到这三个类似的文件

在这里插入图片描述

关于图集的一些细节:

保证同一个Atlas的精灵在同一Depth,否则会增加Draw Call

NGUI字体制作

NGUI中的label,如果选择unity则可以直接使用导入进来的字体,如果选择NGUI则需要制作Font(字体路径不要有中文)

字体制作器FontMaker就在AtlasMaker下面

在这里插入图片描述

打开FontMaker

在这里插入图片描述

FontMaker中的几种模式:

  1. Generated Bitmap:直接导入现有字体,Bitmap适用于数目小写死的文字,例如英语

  2. Improted Bitmap:导入C#字体文件和Texture纹理

  3. Dynamic:动态的,适合汉字这种数目量打,但一定会占一个Draw Call

output时如果选择一个有其他图片的图集则会出现一种模式:

  1. 图文混材(文字保存在一个图集中)可以减少Draw Call,同时可以在字体文件中编辑快捷键显示的图片
    1. 在这里插入图片描述

Label外框的大小限制了字体的最大尺寸

UIanchor

可以理解为NGUI提供的锚点组,在下图路径创建:

在这里插入图片描述

面板:

在这里插入图片描述

属性:

  1. UICamera:UI相机。
  2. Container:理解为选择Canvas,如果不填默认为UIRoot。
  3. Side:锚点的类型。

NGUI实现交互的前提是碰撞器

NGUI中的两个基础控件

UISprite:

在这里插入图片描述

属性:

  1. Atlas:选择图集。
  2. Sprite:选择图片。
  3. Material:选择材质。
  4. Type:选择图片类型,分为:Simple,Siled,Tiled,Filed
  5. Gradient:渐变色。
  6. Color Tint:基色。
  7. Widget:确定轴心点。NGUI中使用Widget来代替空物体使用
  8. Anchors:确定锚点。

UILabel:

在这里插入图片描述

属性:

  1. NGUI/Unity:选择NGUI字样还是Unity字样,unity字样可直接使用导入进来的字样资源,而NGUI字样需要自己再制作字体。
  2. Material:字体材质。
  3. Font Size:字体大小。
  4. Text:字体内容。
  5. Modifier:更改字体大小写。
  6. OverFlow:溢出处理。
    1. ShrinkContent:即默认的策略,文字显示的大小与Label的Size自动适应。
    2. ClampContent:如字面意思,就是裁剪掉无法显示的字体内容。字体内容会按照Font Size设定的大小来显示。
    3. ResizeFreely:与第一种策略相对应,这时是Label控件的大小去适应字体内容的大小。
    4. ResizeHeight:同字面意思,Label控件的高度无法手动调节,而是随着字体内容的大小需求去适配字体内容。
  7. Alignment:对齐方式。
  8. Gradient: 字体颜色渐变的设置。包括Top和Bottom,即从Top色变到Bottom色。
  9. Effect:效果,包括描边(outline)和阴(Shadow)。
  10. Color Tint:字体渲染的颜色。
  11. Max Lines:多少行来显示字体。
  12. BBCode:使用NGUI的字体自定义来格式化字体。

NGUI高级控件

高级控件的制作可以参考UGUI上的层级关系进行制作

UIButton

在这里插入图片描述

button的颜色渐变实际是使用了Tween动画。

UIToggle

在这里插入图片描述

其中State Transform中设置的是选中状态的图片或者动画。

UISlider

在这里插入图片描述

在这里插入图片描述

其中Foreground层级应当大于Background,实现覆盖

UIInputfield

在这里插入图片描述

Tween

在这里插入图片描述

NGUI的Tween动画库有许多写好的脚本:

在这里插入图片描述

属性:

  1. From:起始点
  2. To:终止点
  3. Tweener 动画
    1. Play Style 播放模式
    2. Duration 播放时长
    3. Start Delay 延迟播放
    4. Tween Group 动画组
    5. Ignore Timescale unity会设置TimeScale的影响忽略之后就不受影响。

Scroll view

在这里插入图片描述

属性:

  1. Content Origin:起点位置。
  2. Movement:移动方式,有Horizontal, Vertical, Unrestricted, Custom
  3. Drag Effect:拖动特效,注拖动需要子物体有UIDragScrollView脚本。
  4. Scroll Wheel Factor:鼠标滚轮滑动速度。
  5. Momentum Amout:移动速度。
  6. Restrict Within Panel:子物体是否保持在Panel内。
  7. Contrain On Drag:拖动限制。
  8. Cancel Drag If Fits:如果合适,取消拖动。
  9. Smooth Drag Start:柔性拖动起步。
  10. Scroll Bars:水平垂直滑动条。

注:NGUI中Scroll View需要创建一个Panel。

在这里插入图片描述

布局组件。

定位由父物体和子物体的轴心点一起决定

UIGrid

在这里插入图片描述

UITable

Grid一样
在这里插入图片描述

NGUI中的事件监听

  1. 使用NGUI提供的OnXXX事件,具体叫什么可以在UICamera的注释中找到。不常用
  2. 使用EventTrigger进行拖拽绑定。不常用
  3. 使用UIListener
    1. UIListener使用模板:
    2. 在这里插入图片描述

NGUI与UGUI的区别

  1. uGUI的Canvas 有世界坐标和屏幕坐标

  2. uGUI的Image可以使用material

  3. UGUI通过Mask来裁剪,而NGUI通过Panel的Clip

  4. NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层.

  5. UGUI 不需要绑定Colliders,UI可以自动拦截事件

  6. UGUI的Anchor是相对父对象,没有提供高级选项

  7. UGUI没有Atlas一说,使用Sprite Packer

  8. UGUI的Navigation在Scene中能可视化

  9. UGUI的事件需要实现事件系统的接口,但写起来也算简单

  10. NGUI还保留着图集,需要进行图集的维护。而UGUI没有图集的概念,可以充分利用资源,避免重复资源。

  11. UGUI出现了锚点的概念,更方便屏幕自适应。

  12. NGUI支持图文混排,UGUI暂未发现支持此功能。

  13. UGUI没有 UIWrap 来循环 scrollview 内容。

  14. UGUI暂时没有Tween组件。

HUD

UI跟随,使用脚本UIFollowTarget:

在这里插入图片描述

HUDText

在这里插入图片描述


http://chatgpt.dhexx.cn/article/wSQbjI25.shtml

相关文章

NGUI简介

NGUI NGUI是一款为Unity游戏引擎开发的工具功能扩展的UI插件,它能够为开发者提供了方便快捷的UI设计方法,加快设计游戏的速度。详细的介绍还是请读者到NGUI官网查看: http://www.tasharen.com/?page_id140 在Unity中,如果要使…

NGUI

(一)NGUI NGUI概述:NGUI是严格遵循KISS原则并用C#编写的Unity(适用于专业版和免费版)插件, 全面支持iOS/Android和Flash。相比UGUI(Unity自带的UI系统),有着更高的性能和…

【Unity】 NGUI学习笔记(二)NGUI基础功能

文章目录 NGUI基础功能与知识点Atlas图集资源Sprite精灵Button按钮Anchor(锚点)Label文本Toggle开关Slider滑动条Popup List下拉框Panel面板Input Field Script文本域脚本Text List组件Chat Input组件Scroll Bar滚动条(预制件)Scr…

NGUI插件的使用

一、NGUI的公有属性 Widget面板属性: Privot设置原点位置 Depth设置深度(跟UGUI一样,深度高的会挡住深度低的UI) Snap恢复初始大小 Size设置大小 Aspect宽度/高度,(Free模式下才可设置高度和宽度&#xff0…

网上订餐系统项目实战

写在前面:学习编程过程中写的一个网上订餐系统,记录一下大概的思路,源码跟实现过程 ,这也是一个学习的过程,这时候还有很多不足的地方 MVC的分层做得不是很好,如果还有其他可以改进的地方,欢迎…

肯德基宅急送网上订餐系统(移动扫码点餐)的设计与实现(小程序+PHP+MySQL)

目 录 第1章 绪论 1 1.1研究背景及意义 1 1.2研究现状 1 1.3章节安排 2 第2章 关键性技术介绍 3 2.1 PHP 3 2.2 JSON 4 2.3 XML 5 2.4 HTML 5 2.5 Mysql介绍 6 第3章 需求分析 7 3.1系统业务流程分析 7 3.2 功能需求分析 8 3.3用例分析 10 3.3.1领域类图 10 3.3.2系统用例 14 3…

基于移动端的网上订餐系统的设计和实现

随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机能够随时随地地查询互联网所提供的服务,一种高效的方法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网络以及互联网访问相关资源信息。因此,智能手机应用软件及其需要的服务将有广阔的发展前…

基于javaweb+mysql的网上订餐在线点餐管理系统(前台、后台)

基于javawebmysql的网上订餐在线点餐管理系统(前台、后台) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 …

Java+mysql毕业设计,网上订餐系统

1 绪 论 1.1 网上订餐配送系统的简介 本系统是基于B/S架构的系统。随着互联网技术与时俱进的不断更迭,人们对订餐的方式要求也逐渐提高,而本文所论述的网上订餐配送系统,正式随着互联网的兴起应运而生的。本系统能够帮助用户远程浏览餐饮信…

Java基础实战项目-------网上订餐系统

目录 前言 项目需求 项目环境准备 技能点 实现思路 ​编辑 项目总结 完整代码: 前言 已学完Java基础部分的内容,如下 理解程序的基本概念:程序、变量、数据类型 会使用顺序、选择、循环、跳转语句编写程序 会使用数组以及Arrays的…

毕设系统之网上订餐管理系统

距离毕业已经过去一个月了,毕设那一段难忘的时光相信大家也都还记得,我当时做的毕设系统是网上订餐管理系统,有三个角色,分别是管理员、用户(含会员)、商家,所用的技术为SpringBootMybatisThyme…

网上订餐系统需求分析报告

一.研究意义 随着计算机和网络的日趋发展,网上店铺如雨后春笋般出现,就连沃尔玛,金拱门这一类老品牌的商家都开拓了自己的网上购物渠道,有调查表明:无论是中国还是西方国家,越来越的用户已经习惯于网络购物…

《网上订餐系统》开发全程回忆

一、需求分析 随着信息经济的发展,许多上班族因工作繁忙导致就餐时间紧凑,而没法享受各种美味。传统的订餐方式过于乏味。而不能满足当今社会快速的生活节凑。然而,把餐饮与互联网结合起来正好解决了这一问题。网上订餐系统对广大顾客提供网上订餐服务,既方便了上…

网上订餐点餐用餐系统的设计与实现(SpringMVC, BootStrap, MySQL)

1、项目功能介绍 本设计的开发是基于B/S结构,采用JSP编程技术及Mysql数据库进行开发。本文首先介绍网站开发环境和运行平台、ASP、HTML、CSS3和java script,并对系统的设计进行了详细的需求分析;然后给出了网上订餐系统的设计方案及系统的具体…

基于java网上订餐网站系统

通过网上西餐厅网上订餐管理系统这个平台,消费者足不出户就可以了解大量的西餐厅菜单信息,给消费者带来了极大的方便。网上西餐厅管理系统平台的主要功能包括菜单类别管理、菜单信息管理等,根据客户种类又可以划分成管理员客户和会员客户两种…

网上订餐管理系统的设计与实现

技术:Java、JSP等 摘要: 随着信息技术的广泛使用,电子商务对于提高管理和服务水平发挥着关键的作用。越来越多的商家开始着手于电子商务建设。电子商务的发展为人们的生活提供了极大的便利,也成为现实社会到网络社会的真实体现。 …

Javaweb 网上订餐系统

第一部分是绪论。介绍了本研究课题的研究背景及意义、国内外研究现状和课题设计的思路等; 第二部分是系统开发的技术(Javaweb技术、servlet、jsp页面、MVC模式)以及使用的工具(Eclipse集成开发工具、MySQL数据库)等基础…

JAVA毕设项目-网上订餐系统(附:源码 论文 Sql文件)

课题背景 上世纪90年代,互联网逐渐走进人们的视野,在不知不觉中改变着社会的商品交易方式。国内各大企业从认识到互联网的重要性之后,一直坚持不断的探索网上交易的可能。但是由于网络生活具有很大的虚拟性,商家的信誉很难得到保…

网上订餐系统设计与实现(JSP+SSM+MySQL)

目 录 摘 要 I ABSTRACT II 第一章 概述 1 1.1 课题背景 1 1.2 目的和意义 1 1.3总体设计原则 1 1.4 本章小结 2 第二章 系统开发技术 3 2.1 SQL SERVER 2005简介 3 2.2 TOMCAT简介 3 2.3 JAVA 简介 3 2.4 ECLIPSE简介 4 2.5 JSP简介 4 2.6 本章小结 4 第三章 系统规划与分析 5…

基于SpringMVC的网上订餐系统

一、系统分为两端 (1)网上订餐前端 (2)网上订餐管理端 系统开发的技术(Javaweb技术、Spring、jsp页面、MVC模式)以及使用的工具(Eclipse集成开发工具、MySQL数据库)等基础知识&am…