Unity学习日志_NGUI简介

【Unity】 NGUI学习笔记(二)NGUI基础功能 Unity NGUI学习笔记(二)NGUI基础功能 NGUI的根节点为UI Root。所有的物体想要显示在界面上都必须挂在具有UI Panel组件的物体下。 UI Panel具有深度属性,深度决定了物体显示的层级,类似于z-index。 NGUI没有节点的概念,创建的物体直接就是Sprite、Label之类的。 NGUI主相机可以理解为没有Z轴,所以Clear Flags设置为Depth only(仅影响深度)。UI的深度值永远大于其他物体。 把UI Root及其子物体的Layer设置为UI层,再把UI相 阅读详情

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

在这里插入图片描述

unity的NGUI 1、Label 、添加Label(点中UI Root–>点右键–>Create–>Label) 2、为Label添加字体(控制面板–>外观和个性化–>字体–>选中一种复 制–>粘贴到工程下面的Assets文件件里面的fonts文件夹里面 ) 3、Overflow(ShrinkContent:自适应大小 ClampContent:剪掉看不到 的文字 ResizeFreely:保持和字体的大小一致 ResizeHight:不能 调节文字的高度) 4、Alignm 阅读详情

相关推荐

Cocos Creator到NGUI转换器:跨引擎UI迁移的自动化实践

在游戏开发领域,跨引擎项目迁移是开发者常面临的技术挑战,尤其在UI系统转换方面。UI作为游戏与玩家交互的核心界面,其迁移涉及节点结构、组件属性与渲染逻辑的等效转换。Cocos Creator与Unity NGUI作为两套主流的UI解决方案,在设计哲学与实现机制上存在显著差异,例如坐标系统、锚点布局和事件处理等。通过自动化转换工具,开发者可以将Cocos Creator中的UI资源(如场景、预制体)映射为NGUI可识别的组件,从而大幅减少手动重建的工作量。这种技术方案特别适用于老项目技术栈升级、跨引擎原型复用

weixin_30394669的博客 410

NGUI Tools:Unity老牌UI解决方案的现代化效率工具集

在Unity游戏开发中,UI系统是连接玩家与游戏世界的核心界面层。其底层原理涉及渲染管线、Draw Call合批与资源引用管理,直接决定了应用的性能表现与开发效率。对于仍在使用经典NGUI框架的项目而言,虽然其性能与灵活性备受认可,但面对现代开发中频繁的资源替换、批量操作与性能调优需求,传统手动方式显得效率低下且易错。NGUI Tools正是为此而生的编辑器扩展工具集,它通过提供**批量处理器**与**依赖分析器**等模块,将繁琐的UI资源管理、引用查找与动画配置工作自动化与智能化。该工具无缝集成于Unit

weixin_42554151的博客 242

Unity_手机上查看日志的插件LogViewer

推荐一款可以在手机上查看log的插件: 官方地址:https://www.assetstore.unity3d.com/en/#!/content/12047 其他方式:https://download.youkuaiyun.com/download/qq_39710961/10451607 使用介绍:总而言之这款插件就是将Console搬到了移动端,非常适合离线真机测试时,观察错误的产生点,和错误原...

wy小骑士 5485

NGUI

(一)NGUI NGUI概述:NGUI是严格遵循KISS原则并用C#编写的Unity(适用于专业版和免费版)插件, 全面支持iOS/Android和Flash。相比UGUI(Unity自带的UI系统),有着更高的性能和更低的学习难度。 在进入学习之前,首先下载NGUI插件,解压缩并导入到Untiy中:NUGI插件下载链接 NGUI插件包 导入NGUI插件包 导入NGUI插件包之后...

qq_36998053的博客 2552

【Unity】NGUI下载与导入

Unity3D插件NGUI的下载和导入。

Get your hands dirty 3万+

关于发那科机器人抓手及物料搬运阀配置

4:确保抓手阀岛和输入模块配网连接正常,MENU—SETUP—MH Valves—Details,详细界面进入到左上图所示,根据每组阀分配夹钳数量并应用。3:设置搬运有效,抓手是否带点焊可以自行选择,要设置应用选择,物料搬用工具数量,工具上阀岛的数量,夹钳存在数量,工具存在数量,以及真空吸盘,冷启动。​2:MENU—应用选择,将搬运置为有效,剩余其他项根据机器人实际用途进行选择。5:设置夹钳数量,检查打开夹钳,检查闭合夹钳,延迟时间要给选择配置应用。

dxs93的博客 4776

unity NGUI使用方法

很多基本模块比如按钮、slider等都能从Prefab中直接拖拽到场景中实现,但都需要有一个Collider(Prefab已经自带)因为不仅是UI,所有带有Collider的游戏物体都能接收到OnClick, OnPress这样的事件——前提是需要在Main Camera里面添加上event System组件,然后自定义脚本添加以下函数:如果不想写代码,也可以直接拖拽UIEventTrugger脚本来实现相关功能。

jkkk_的博客 2682

ubuntu打实时内核补丁教程以及安装后显卡驱动问题解决方法

在ubuntu20.04上安装成功,亲测有效 目录ubuntu打实时内核补丁教程1、下载实时内核2、解压和打补丁(patch)3、安装依赖和编译安装4、修改一些文件,便于之后切换内核5、重启电脑实时内核版本下安装nvidia显卡驱动的问题1、先切换回之前的内核(非实时)版本2、重装之前内核(非实时)版本下的显卡驱动3、切换回实时内核(按照上面的步骤)4、在实时内核下安装显卡驱动 ubuntu打实时内核补丁教程 安装目标系统:ubuntu20.04 电脑配置:i9,2080ti 1、下载实时内核 打开终端,输

weixin_39275295的博客 7996

Unity学习日志_NGUI背包系统基本功能实现

Unity学习日志_背包系统基本功能实现 功能展示: 1. 拖拽: 2. 不同物体交换: 3. 相同物体叠加: 背包界面搭建: 1. 整体层级逻辑: 2. 细节: 关于BackPack:使用了Scroll View脚本,便于背包的上下滑动 关于BackPackBackground:使用了Grid脚本来实现自动布局 关于Cell:使用的BackPackCellTest脚本继承于UIDragScrollView 关于Items:使用的BackPackTest脚本继承于U

BraveRunTo的博客 455

K210视觉项目上位机避坑指南:解决C#解析ESP8266 TCP图像流的乱码、卡顿与连接中断

本文详细解析了K210与ESP8266在视觉项目中的上位机开发问题,重点解决TCP图像流解析中的乱码、卡顿与连接中断问题。通过自定义协议、JPEG流重组、TCP连接优化等实战技巧,提升系统稳定性和性能,适用于嵌入式视觉开发者和C#上位机程序员。

weixin_28730131的博客 402

uniapp实现app版本发现新版本后,自动更新

app实现自动更新

oldolder的博客 1283

【免费下载】 最新版NGUI插件下载

本仓库提供最新版NGUI插件的下载,该插件经过优化,支持Unity2021稳定版,并且在使用过程中不会出现报错问题。NGUI是一款广泛使用的Unity UI插件,适用于各种游戏开发项目。 ## 资源内容 - **NGUI插件文件**:包含最新版的NGUI插件,适用于Unity2021稳定版。 - **安装说明**:提供详细的安装步骤,确保用户能够顺利将插件集成到Unity项目中。 ## 使用

gitblog_09719的博客 1741

Python爬虫实战:如何抓取旅游论坛上的帖子、旅行攻略和评论内容

无论是知名的旅游网站,还是地方性的旅游讨论区,用户发布的旅行贴文、攻略和评论往往包含着大量的宝贵信息。本文将详细介绍如何使用Python编写一个爬虫,抓取旅游论坛上的帖子、旅行攻略和评论内容,涵盖从获取页面内容、解析数据到处理动态加载等各个方面的技术。从基本的请求和网页解析,到动态加载页面的处理,再到数据存储和反爬虫技巧,我们详细讲解了抓取旅游论坛数据的全过程。通过本文的介绍,你可以将所学的爬虫技术应用到其他类似的网站抓取任务中,为后续的数据分析、机器学习等任务提供丰富的数据源。在这种情况下,传统的。

2201_76125261的博客 1557

Unity游戏开发中ngui和ugui区别与优缺点详解

在Unity3D中,有两种主要的UI系统可供选择,分别是NGUI(Next-Gen UI)和UGUI(Unity GUI)。在Unity3D中,UI系统是游戏开发中非常重要的一部分,它负责游戏中的用户界面的显示和交互。首先,在Unity3D中创建一个新的场景,并创建一个画布(Canvas)对象作为UI的容器。以上就是UGUI的简单代码实现示例,通过添加监听器,我们可以为按钮添加各种交互效果和逻辑。接下来,在代码中获取按钮对象,并为按钮添加点击事件的监听器。

voidinit的专栏 1680

6.3 节深度拆解:Hermes Agent 多 Agent 协同执行链路的 4 层设计逻辑

拆解 Hermes 多 Agent 协同的 4 层工程化设计(协议层、编排层、执行层、适配层),聚焦协议层的强约束消息 Schema 如何解决 Agent 间语义不一致问题,并提供 `soul.md` 配置、GLM-4.7Flash 结构化输出验证及 v0.13.0/v0.14.0 版本实操避坑指南

weixin_42520239的博客 122

学Simulink--基础微电网场景实例:基于Simulink的微电网黑启动过程建模与仿真

黑启动(Black Start)是指在全系统停电(无电压、无频率)状态下,微电网依靠内部电源自主恢复供电的能力。🌩️典型场景主网长时间故障自然灾害导致区域停电计划检修后重启❗挑战无参考电压/频率 → 逆变器无法锁相负荷逐级投入 → 需避免过流/过压多电源协调 → 防止环流或失步✅黑启动成功标准在30 秒内恢复关键负荷供电电压/频率稳定在范围内无设备损坏或保护跳闸🎯本文目标:手把手教你使用 Simulink + Simscape + Stateflow 搭建。

amy_mhd的博客 201

Unity与Web技术融合:NGUI/GUI架构下的HTML UI集成与性能优化

在现代应用开发中,UI系统是连接用户与功能的核心界面层,其灵活性与动态内容承载能力直接影响用户体验。传统游戏引擎如Unity的原生UI系统(UGUI/NGUI)在复杂交互和动态内容更新方面存在局限,而Web技术栈(HTML/CSS/JavaScript)凭借其成熟的生态、高效的开发流程和强大的动态内容渲染能力,成为增强UI表现力的重要补充。通过桥接引擎与WebView组件,开发者可以在保持原生性能优势的同时,引入Web技术的灵活性,实现如实时数据展示、动态活动页面、内嵌Web应用等复杂场景。这一技术融合方案

weixin_33889665的博客 364

Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)

Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)

千歌叹尽执夏的博客 1100

Unity开发之NGUI系列

Unity插件收集 在Unity开发过程中会收集一些插件,收集这些插件的目的并不是我喜欢在开发中使用插件,而是本着喜欢的态度去收集的,就像我喜欢收集模型一样; 还有一点就是通过了解插件能让我知道Unity更多的功能与应用,假设说:我想做一个RPG的手机游戏,但是不知道如何通过做出打斗的那种真实感,在Assets Store已经有这样的pack或kit,我就可以从它的代码结构,资源使用及Demo截图...

weixin_34417814的博客 193

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【免费下载】 NGUI Next-Gen UI [2023.08.01] - Unity UI解决方案升级版

NGUI Next-Gen UI [2023.08.01] - Unity UI解决方案升级版 【下载地址】NGUINext-GenUI2023.08.01-UnityUI解决方案升级版 NGUI Next-Gen UI [2023.08.01] - Unity UI解决方案升级版 ...

gitblog_09728的博客 1381

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Unity NGUI本地化Key失效排查:从数据加载到组件更新的完整解决方案

在游戏开发中,本地化是实现多语言支持的核心技术,它通过键值对映射机制将界面文本与具体语言分离。其原理是建立统一的文本数据库,运行时根据当前语言设置动态替换显示内容。这项技术的价值在于提升游戏的全球可访问性和维护效率,是国际化项目的标配。在Unity引擎中,NGUI作为经典UI框架,其UILocalize组件常被用于实现本地化功能。然而,开发中常遇到组件无法找到预定义Key的问题,这通常涉及**资源加载机制**和**初始化时序**两大核心环节。具体表现为数据文件未正确载入、Key拼写不一致或事件通知缺失等,直

weixin_30889885的博客 421

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

unity学习日志

直接在unity中接sdk渠道 http://www.abctools.cn/documentCenter/toJoy7Summary aapt命令能打包apk文件 可参考 http://www.ltesting.net/ceshi/ceshijishu/sjcs/android/2012/0511/204843.html

woyidinghuichenggong的专栏 975

NGUI动态添加widget

之前也没写过日志什么的,开始工作了,学到很多东西总觉得应该把它记下来,不仅对自己的学习还是分享学习的心得都是很有帮助的。于是呢,从今天开始,只要有时间有我都会把我的一些不管是学习、工作、还生活的心得分享出来,也很欢迎大家一起来研究。          对于做U3D的来说,NGUI已然是很熟悉了,对于NGUI控件(像Label)的创建当然不必多说了,现在就来了解一下如何在程序中动态创建Label

huihuilaopo的专栏 2461

Unity2017打开25G大项目卡成狗?3小时变3分钟的优化实战(附NGUI避坑指南)

本文针对Unity2017大型项目加载缓慢问题,提供了一套从诊断到优化的实战方案。通过彻底清理Library缓存、优化资产导入设置、重构Prefab结构以及解决NGUI插件稳定性等核心策略,成功将项目打开时间从数小时缩短至数分钟。文章还详细分享了NGUI图集管理与避坑指南,帮助开发者高效优化遗留项目。

y7z8a9的博客 983

U3D NGUI UIButton 点击事件

using System.Collections; using System.Collections.Generic; using UnityEngine; public class NGUIBtnTest : MonoBehaviour { //public GameObject target_sprite; public UIButton myButton; // Use this for initialization void Start () { //UISp.

Fanstasic的博客 631
上一篇: Unity学习日志_UGUI下
下一篇: Unity学习日志_NGUI背包系统基本功能实现
BraveRunTo
博客等级 码龄7年 91粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值