编辑推荐
国内第1本用NGUI开发游戏UI的实战教程。
《Unity3DNGUI实战教程》中包括了众多游戏UI设计实战知识,如UI动画、UI随屏幕自适应、跨平台制作UI、UI结构设计、UI代码的设计和优化、背包界面的制作等实战知识
为了解决读者的疑难问题,最后用一章归纳了NGUI常见疑难问题解答,以便读者遇到问题时可以随时参考。
《Unity3DNGUI实战教程》不仅讲了NGUI的基础,更是以项目实战为目的,书中涵盖了大量的项目实战中的经验之谈,这对于一个客户端程序员来说,不管他用什么引擎、用什么UI工具来开发UI系统,本书都能给他提供帮助,并不会过时。
中国排名第1的专业界面设计平台UI中国倾力推荐
中国专精于游戏视觉相关的设计分享网络平台GAMEUI倾力推荐
中国专业的游戏UI设计咨询机构iCON倾力推荐
内容简介
NGUI是专门针对Unity引擎、用C#语言编写的一套插件,它已经成为了目前世界上应用最广、最成熟的Unity制作UI的插件,完美地弥补了Unity引擎原生GUI系统和NewGUI系统的各种不足。程序员可以利用它提供的一整套UI框架和事件通知系统来进行自己项目的UI设计和制作。本书不仅讲解了必知必会的NGUI的基础知识,更是以项目实战为目的,涵盖了大量的项目实战中的经验之谈和技巧总结,用以帮助读者达到学以致用的目的。
《Unity 3D NGUI 实战教程》的主要内容:初识NGUI、UI开发的流程、NGUI强大优势、制作第1个UI图集、创建一个3DUI、查看和管理UI的深度、制作基础的UI控件、让UI动起来——UI动画、NGUI进阶、使用Panel管理面板、NGUI实战进阶、UI开发核心问题——UI随屏幕自适应、实战开发中UI资源制作标准、跨平台制作UI资源、UI结构设计、UI代码的设计和优化、项目案例实战分析、背包界面的制作等核心技术,最后用一章归纳了NGUI常见疑难问题,以便读者遇到问题时可以随时参考。
《Unity 3D NGUI 实战教程》适合新上手的Unity客户端程序员、需要做UI的Unity程序员、想自学Unity做独立游戏开发的人员,以及大专院校相关专业的师生学习用书和培训学校的教材。
作者简介
高雪峰,现在为游戏制作人,曾经担任游戏策划、主策划、Unity程序员等职位,开发过端游、页游、手游等游戏项目,带团队做过多个商业项目,对游戏的研发过程具有丰富的经验和实战技能。对NGUI有深入的研究,并且全部应用于项目实战,本书是作者多年实战经验的总结,定会给读者带来很多有益的实战启示。
内页插图
目录
第1章 初识NGUI
1.1 游戏UI开发介绍
1.1.1 什么是游戏UI
1.1.2 UI为何如此重要
1.1.3 UI开发的流程
1.1.4 UI开发的难点
1.2 什么是NGUI
1.2.1 NGUI插件介绍
1.2.2 NGUI的强大优势
第2章 NGUI基础
2.1 导入NGUI插件
2.1.1 NGUI版本介绍
2.1.2 NGUI的下载和购买
2.1.3 导入NGUI插件应用
2.1.4 导入常见问题
2.2 认识基本的UI资源
2.2.1 什么是UI精灵(Sprite)
2.2.2 什么是UI图集(Atlas)
2.2.3 什么是UI贴图(Texture)
2.2.4 什么是UI标签(Label)
2.2.5 什么是UI字体(Font)
2.3 制作第一个UI图集
2.3.1 学会解剖UI的资源结构
2.3.2 如何导入切好的美术资源
2.3.3 用Atlas Maker制作图集
2.4 制作第一个UI字体
2.4.1 为什么要制作UI字体
2.4.2 静态字体和动态字体
2.4.3 制作静态字体介绍
2.4.4 制作动态字体介绍
2.5 创建第一个UI
2.5.1 创建一个2D UI
2.5.2 创建一个3D UI
2.5.3 了解UIRoot、UIPanel和UICamera组件
2.6 2DUI和3DUI的工作原理
2.6.1 2DUI的工作原理
2.6.2 3DUI的工作原理
2.6.3 如何判断该选择哪一种UI
2.7 深度(Depth)概念
2.7.1 强化对深度的理解
2.7.2 小心相机的深度
第3章 核心组件
3.1 什么是UI控件
3.2 制作精灵(UISprite)
3.2.1 怎样判断是否应该使用精灵
3.2.2 创建精灵
3.2.3 Sprite组件的设置
3.3 制作标签(Label)
3.3.1 怎样判断是否应当使用标签
3.3.2 创建标签
3.3.3 Label的文字设置
3.4 制作UI纹理(UITexture)
3.4.1 什么情况下使用UITexture
3.4.2 创建纹理
3.4.3 纹理的设置
3.5 制作按钮(Button)
3.5.1 怎样判断应该使用按钮
3.5.2 创建按钮
3.5.3 核心组件BoxCollider
3.5.4 核心组件UIButton
3.5.5 制作按钮的放缩动画
3.5.6 制作按钮的偏移动画
3.5.7 制作按钮的旋转动画
3.5.8 添加按钮单击音效
3.5.9 任何事物都可以变成按钮,不仅仅是UI
3.6 制作进度条(UISlider)
3.6.1 怎样判断是否应当使用进度条
3.6.2 创建进度条
3.6.3 核心组件UISlider设置
3.6.4 进度条的BoxCollider说明
3.7 制作输入框(Input)
3.7.1 怎样判断是否应当使用输入框
3.7.2 创建输入框
3.7.3 核心组件Input设置
3.7.4 输入框使用的一些注意事项
3.8 制作滚动视图(ScrollView)
3.8.1 怎样判断是否应当使用滚动视图
3.8.2 创建滚动视图
3.8.3 滚动视图核心组件UIPanel
3.8.4 滚动视图核心组件UIScrollView
3.8.5 创建一个拖动条
3.8.6 拖动条说明
3.8.7 让视图内的内容可以被拖动
3.8.8 制作滚动视图时的注意事项
3.9 制作复选框(Toggle)
3.9.1 怎样判断是否应当使用复选框
3.9.2 创建复选框
3.9.3 复选框的核心组件UIToggle
3.10 制作下拉菜单(PopupList)
3.10.1 怎样判断是否应当使用下拉菜单
3.10.2 创建下拉菜单
3.10.3 显示当前选中的选项
3.10.4 下拉菜单核心组件PopupList
3.10.5 制作下拉菜单的注意事项
第4章 UI动画
4.1 常见的两种UI动画介绍
4.1.1 要区分UI动画和UI特效两个概念
4.1.2 关于Tween动画
4.1.3 关于Animation动画
4.2 渐隐渐现动画(透明度动画)
4.2.1 透明度动画的介绍和应用
4.2.2 使用透明度动画TweenAlpha
4.2.3 使用透明度动画的注意点
4.3 颜色变化动画(变色动画)
4.3.1 变色动画的介绍和应用
4.3.2 使用颜色动画TweenColor
4.3.3 使用颜色动画的注意点
4.4 位置变换动画(位移动画)
4.4.1 位移动画的介绍和应用
4.4.2 使用位移动画TweenPosition
4.4.3 使用位移动画的注意点
4.5 旋转变化动画(旋转动画)
4.5.1 旋转动画的介绍和应用
4.5.2 使用旋转动画TweenRotation
4.5.3 使用旋转动画的注意点
4.6 大小变化动画(放缩动画)
4.6.1 放缩动画的介绍和应用
4.6.2 使用放缩动画TweenScale
4.6.3 使用放缩动画的注意点
4.7 Tween动画总结
4.8 动画控制组件UIPlayTween
4.8.1 为什么要用UIPlayTween
4.8.2 动画核心组件UIPlayTween讲解
4.8.3 使用UIPlayTween的注意事项
4.9 动画控制组件UIPlayAnimation
4.9.1 为什么要用UIPlayAnimation
4.9.2 为UI添加Animation组件
4.9.3 动画核心组件UIPlayAnimation讲解
4.9.4 使用UIPlayAnimation注意事项
第5章 其他组件
5.1 使用Toggle制作页签
5.1.1 页签的工作原理
5.1.2 一个完整的页签界面
5.1.3 制作两个页签按钮
5.1.4 使用ToggleObjects来记录页签内容
5.1.5 制作页签注意事项
5.2 拖动摄像机来浏览超大界面
5.2.1 拖动相机功能的介绍和应用
5.2.2 核心原理和组件介绍
5.2.3 拖动相机浏览超大界面的注意事项
5.3 使用Grid自动排列UI
5.3.1 自动排列UI的应用
5.3.2 自动排列UI核心组件Grid介绍
5.4 使用DragObject直接拖动物体
5.5 让玩家通过拖动自由改变控件大小
5.6 制作序列帧精灵动画(SpriteAnimation)
5.6.1 什么是序列帧精灵动画
5.6.2 SpriteAnimation组件
第6章 NGUI实战进阶
6.1 UI开发核心问题--UI随屏幕自适应
6.1.1 屏幕分辨率对UI适配的影响
6.1.2 主流设备的屏幕分辨率
6.1.3 自适应核心组件Anchor的使用
6.1.4 使用Anchor的注意事项
6.1.5 正式开发UI之前必须明确的几个问题
6.2 UI元素的相对自适应
6.2.1 什么是UI元素的相对自适应
6.2.2 Anchors的介绍及使用
6.2.3 使用Anchors的范例:背景图的全屏适配
6.2.4 使用Anchors的注意事项
6.3 多摄像机同时协作运行
6.3.1 摄像的渲染层的概念
6.3.2 多摄像机协作的应用范围
6.3.3 如何创建多个UI摄像机
6.3.4 多摄像机协作的注意事项
6.4 巧用九宫格以减少UI资源量
6.4.1 项目安装包大小对项目的影响
前言/序言
穿越次元的引擎:Unity 3D NGUI 实战教程 (精选案例集) 内容简介 踏入视觉奇迹的殿堂,释放您的创意潜能!本教程精选一系列极具代表性的 Unity 3D NGUI 开发实战案例,旨在帮助开发者,无论您是初窥门径的新手,还是渴望精进技艺的资深从业者,都能系统性地掌握 NGUI(Next-Generation UI)框架的强大功能,并将其灵活应用于实际项目开发中。我们并非简单罗列 API 或讲解基础概念,而是以“实战”为核心,通过剖析一个个鲜活的、来自真实项目场景的 UI 模块设计与实现过程,让您在解决实际问题的过程中,深入理解 NGUI 的运作机制,掌握构建高效、美观、交互流畅用户界面的核心技巧。 本教程涵盖了从基础的 UI 元素布局、交互响应,到复杂的 UI 动画、数据绑定、性能优化等多个维度,力求为读者提供一套全面而深入的 NGUI 实战指南。我们精心挑选的案例,不仅涵盖了手机游戏、PC 游戏,还延伸至跨平台应用、教育软件等多种类型,确保读者能够触类旁通,将所学知识灵活迁移到不同开发场景。 内容亮点 精选实战案例,贴近真实需求: 告别枯燥的理论堆砌,本教程聚焦于开发者在实际项目中经常遇到的 UI 难题。例如,如何设计一套响应式、可复用的游戏主菜单系统,如何实现动态加载的背包/商店界面,如何构建流畅的战斗技能释放UI,如何集成第三方SDK的登录/支付界面,以及如何在VR/AR环境中实现高效的用户交互等。每一个案例都经过精心设计,力求展现 NGUI 在解决具体问题时的独特优势和最佳实践。 循序渐进,由浅入深: 教程结构清晰,案例难度循序渐进。从最基本的按钮、文本、图片组件的应用,到复杂的滑动列表、网格布局、弹出窗口的管理,再到高级的动画编辑器使用、第三方库的整合,都将逐步展开。即使您对 NGUI 尚不熟悉,也能从入门案例开始,逐步建立起扎实的理解。对于有一定基础的开发者,则可以快速跳到更具挑战性的章节,解决更复杂的技术难题。 深入剖析,透彻理解: 每个案例的讲解都不仅仅停留在“如何做”,更侧重于“为何这样设计”。我们将深入剖析 UI 结构的搭建思路,解释不同组件的选用原因,分析交互逻辑的设计考量,探讨性能优化的关键点,以及揭示潜在的陷阱与规避方法。通过这种深度剖析,您将不仅仅是“照猫画虎”,而是真正理解 NGUI 的设计哲学,掌握灵活运用 NGUI 的能力。 代码示例与资源共享: 教程中的所有案例都附带清晰、可运行的代码示例,方便读者对照学习和实践。我们鼓励读者在学习过程中,主动修改、扩展代码,从而加深理解。部分案例还会提供配套的原始资源文件(如UI切图、模型等),便于读者直接在 Unity 编辑器中复现和调试,极大地提升了学习效率。 性能优化与跨平台考量: 在当今移动设备性能日新月异、用户对流畅度要求越来越高的时代,UI 性能优化至关重要。本教程将贯穿整个学习过程,在讲解各个案例时,都会强调性能优化的技巧,例如如何减少 Draw Call,如何高效地回收和重用 UI 元素,如何利用图集打包,以及如何针对不同平台的特性进行适配。 拓展视野,掌握前沿技术: 除了 NGUI 的核心功能,教程还将适时引入一些与 UI 开发相关的拓展内容,例如如何结合 Unity 的动画系统制作炫酷的 UI 过渡动画,如何利用 Unity 的事件系统实现精细的 UI 交互控制,如何与其他 Unity 插件(如 Spine、Addressables 等)协同工作,以及一些关于 UI/UX 设计的基本原则和最佳实践。 适用人群 Unity 游戏开发者: 无论是2D还是3D游戏,UI都是游戏体验不可或缺的一部分。本教程将帮助您打造更具吸引力、更易于操作的游戏界面。 Unity 应用开发者: 想要开发跨平台应用的开发者,尤其是在手机、PC等平台上,将从本教程中获益匪浅。 UI/UX 设计师: 了解 Unity UI 开发的实现细节,将有助于您更好地与开发团队沟通,设计出更具可行性和创新性的UI方案。 初学者: 如果您是 Unity 新手,但对 UI 开发充满热情,本教程将提供一个清晰的学习路径,引导您快速掌握 NGUI。 有一定基础的开发者: 如果您已经掌握了 Unity 的基本操作,但对 NGUI 的运用不够熟练,或者想要解决一些棘手的 UI 问题,本教程将为您提供宝贵的实战经验。 内容概要 (部分案例预告) 案例一:打造响应式通用游戏主菜单 如何使用 NGUI 的 Anchors 和 Scaling 属性实现不同分辨率下的完美适配。 如何设计可折叠/展开的菜单项,提升界面信息密度。 如何运用 Button 控件实现丰富的点击反馈效果(声音、动画)。 如何构建一个通用的“设置”面板,管理音量、画质等选项。 案例二:动态加载与管理背包/商店界面 如何利用 UIScrollView 和 Grid/Table 组件创建可滚动的物品列表。 如何实现物品数据的动态加载与更新,支持大量物品的展示。 如何设计物品拖拽、出售、购买等交互逻辑。 如何优化大量 UI 元素的性能,避免卡顿。 案例三:流畅自然的战斗技能释放UI 如何设计技能图标、冷却计时、能量指示器等元素。 如何使用 Tween 动画实现技能释放的视觉反馈,如技能特效的弹出、闪烁。 如何处理技能的锁定/解锁状态,以及提示信息。 结合 Unity 的协程实现技能冷却的精确控制。 案例四:集成第三方SDK的登录/支付界面 如何设计标准化的登录注册界面(账号密码、第三方登录按钮)。 如何实现弹出式支付确认窗口,包含商品信息、金额、支付方式选择。 如何处理网络请求的加载状态提示,以及错误信息的展示。 跨平台 UI 兼容性考量。 案例五:VR/AR环境下的高效UI交互 如何在3D空间中构建交互式UI面板。 如何利用射线检测(Raycasting)实现VR/AR环境下的UI选择与点击。 如何设计适合VR/AR交互的按钮和触发区域。 考虑沉浸式体验的UI布局与设计。 总结 《Unity 3D NGUI 实战教程》是一本以解决实际开发问题为导向的实用性教程。通过对一系列精心挑选的实战案例的深入剖析,您将不仅能够掌握 NGUI 的核心技术,更能培养出独立思考、解决复杂 UI 问题的能力。无论您是立志于打造令人惊艳的游戏,还是追求卓越用户体验的应用程序,本教程都将是您手中不可或缺的利器。让我们一同踏上这段精彩的 Unity UI 开发之旅,将您的创意变为触手可及的现实!