Unity插件-NGUI

2023-11-08

1. 基本使用
  1. NGUI -> 选项 -> Reset Perfab Toolbar,显示预制体UI组件,可以直接拖拽到场景中。
  2. 使用NGUI,必须要有一个UIRoot作为父组件
  3. 在场景中的UIRoot中右键单击,然后点Create来创建组件。
    注意:必须将Panel展开,否则无法进行该操作
  4. UICamera.isOverUI 当鼠标在NGUI上时,该数值为True,如果取消碰撞器,那么该UI不会被判定。

Another控件
让ui自适应

名称 功能
type 是否启用锚点
execute ui自适应的更新方式
target 依照哪一个物体进行ui自适应

这样,控件的宽高和位置就会以个物件的各个中心点位置保持绝对距离,从而实现自适应

名称 功能
left 与左边界固定值
right 与右边界固定值
center 与中间固定值(保持大小不变)

type高级可以依照不同物体进行自适应

// 代码添加监听某个组件值改变
UIXXX.onChange.Add(new EventDelegate(this, "Onchanged")
2. Label组件

文本组件

名称 功能
overflow 设置文字超出限制时是隐藏还是自动缩小
alignment 文本排列方式
keep crisp 动态字体锐化
gradient 设置文本过渡
effect 字体效果
spaceing 字体间隔
max lines 多少行来显示字体
max lines 多少行来显示字体

获取控件文本:GetComponent<UILabel>().text
[ff]:表示该标签之后的文本亮度

方法 描述
SetCurrentProgress 用于slider值改变时,为一个0~1的小数
SetCurrentPercent 用于slider值改变时,为一个百分数
SetCurrentSelection 用于下拉列表值改变时 ,为一个字符串
3. Sprite组件

图片组件
NGUI -> Open -> Atlas Maker 打开图形处理器。
New 新建纹理集。点击要添加的图片,即可将图片加入当前纹理集。
点击已经添加的图片即可对其进行编辑。(注意打开右下角的Sprite详情方便观察效果)。

名称 功能
type 设置纹理平铺方式。
高级 全设置成已平铺,效果等同于原本的平铺效果。
Pivot 设置中心点
Depth 深度,决定哪一个在上面
Aspect 设置纵横比
4. Panel组件

面板

名称 功能
alpha 透明度控件
clipping 使用哪一种图层蒙版

图层蒙版

名称 功能
soft Clip 矩形蒙版
texture Mask 图像蒙版
5. Button组件

按钮组件
想要使用button组件,必须先为那个对象添加Box Collider
右键点击想要添加Button的对象,通过Attach -> Box Collider来添加
然后为其添加Button Script,即可实现按钮效果

名称 功能
Tween Target 设按钮动画操纵的对象
isEnabled 设按钮是否启用
6. Tween组件

右键对象Tween以添加动画组件

名称 功能
From 起始数值
to 结束数值
play style 播放方式
Animation Curve 动画曲线
Duration 动画时间
start delay 动画延迟
Ignore TimeScale 忽略时间缩放效果

如果禁用该方法,可以取消进入游戏时运行该动画,以便让代码来控制动画

方法 描述
PlayForward() 正向播放
PlayReverse() 逆向播放
7. Slider组件

滑动条组件
想要使用Slider组件,必须先为那个对象添加Box Collider

名称 功能
Value 数值
step 可以滑动出几种数值
Foreground 前景图(滑块)
Background 背景图(可以没有)
Direction 方向
Thumb 游标按钮

OnValueChange:UIProgressBar.current.value

Slider Colors插件
让滑动条根据当前数值占最大数值百分比的大小而改变自身颜色

8. UIWidget组件

NGUI的基础组件。简单来说,就是一个你可以放在屏幕任意位置的矩形框。widget会有一定的面积,但是在运行的时候完全不可见,所以非常适合当做其他组件的容器(让所有的sprite或者label等以它进行各种对齐)。

UIWidget 也被用来当做所有NGUI元素的基类——所有你创建的sprites和labels。UILabel,UISprite,UITexture和UI2DSprite都继承自UIWidget。

增加UIWidget的快捷键是alt+shift+w。

Widgets也有Depth属性,控制他们被点击时的响应顺序。在Scene View中右键widget可以看到depth的排序。右键后会看见一个列表,所有在鼠标位置的widget都会列出来。最上面的就是显示在最前面的,也会最先接收事件。

8. PlaySound组件

用于播放声音

触发器 描述
鼠标单击 鼠标单击
On Mouse Over 鼠标进入
On Mouse Out 鼠标离开
On Press 鼠标按下
On Release 鼠标抬起
On Enable 可用
On Disable 禁用
9. Typewriter Effect组件

打字机特效组件

参数 描述
Chars Per Second 每秒显示字符数
Fade In Time 淡入时间
Delay On New Line 换行等待时间
8. PopupList组件

下拉列表组件
想要使用PopupList组件,必须先为那个对象添加Box Collider

名称 功能
Options 选项列表,每一行代表一个可选选项
Alignment 选项列表文本对齐方式
Open on 组件的打开复选框按钮
Keep->Initial 设置初始值
Background 组件的复选框背景图
HighIight 复选框选项获取焦点的图
Animated 复选框选是否使用动画
font 复选框文本所用字体

必须要选择一种font,否则复选框不会被打开
OnValueChange:UIPopupList.current.value

9. Toggle组件

复选框组件
想要使用Toggle组件,必须先为那个对象添加Box Collider

组:

Group:开关组的设置。默认为0,表示没有开关组。当有多个Toggle的Group相等且不为0的时候,表示它们在同一个开关组中,同一个开关组中的开关只允许打开一个。
Starting State:初始状态是否被选中。

状态:

transition: 设置状态切换是否是平滑过渡
invertState:设置在未被选中情况下显示
OnValueChange:UIToggle.current.value

10. Input组件

输入框组件
想要使用Input组件,必须先为那个对象添加Box Collider

参数 描述
starting Value 默认文本
saved As 内容指定保存的键值
active Text Color 文本框激活的时候显示的颜色
inactive Color 未激活的时候显示的颜色
caret Color 闪硕光标的颜色
select Color 被选择文字的颜色
input Type 输入内容格式化,可以是密码显示*号
validation 输入内容限定
on Return Key 按下回车后的行为
character Limit 输入字符数量限制

OnSubmit、OnChange:UIInput.current.value
输入内容限定的类型:

类型 描述
Integer 数字
username 字母数字
名称 字母
filename 任意字符
11. UIDrag组件

拖拽组件
想要使用UIDrag组件,必须先为那个对象添加Box Collider

  1. UIDragObject
    用于某个UI对象的拖拽行为
参数 描述
target 拖拽的对象,一般是自身
movement 拖拽位移是鼠标位移的几倍
scrollWheel 获取鼠标焦点时,每次滚动滑轮的位移
dragEffect 是否在拖拽结束后保留惯性
momentum 惯性大小
  1. UIDragResize
    用于拉伸某个UI对象的大小
参数 描述
目标 拉伸的对象,一般是父对象
轴心 允许拉伸UI的哪些方向
minWidth 最小宽度
minHeight 最小高度
maxWidth 最大宽度
maxHeight 最大高度
12. UIScrollBar组件

滚动条组件
想要使用UIScrollBar组件,必须先为那个对象添加Box Collider

名称 功能
Value 数值
size 块大小
alpha 透明度
step 可以滑动出几种数值
Foreground 前景图(滑块)
Background 背景图(可以没有)
Direction 方向
Thumb 游标按钮

OnValueChange:UIScrollBar.current.value

13. UITextList组件

文本列表组件
想要使用UITextList组件,必须先为那个对象添加Box Collider
Box Collider

名称 功能
textLabel 文本区域
textBar 滑动条
style 从上新增还是从下新增
paragraph History 历史数量限制

滚动视图组件
想要使用UIScrollView组件,必须先为那个对象添加Box Collider

  1. UIScrollView通常挂载在Panel面板上,为了内容水平自适应,子集还需额外安装一个UIGrid插件对象。
  2. 为视图中的每一个元素添加UIScrollView组件,设置它的滚动视图组件为这个UIScrollView组件。

如果想实现类似血条不可拖动的条,去掉Box Collider即可

UIScrollView

名称 功能
Content Origin 制panel相对Scroll View的位置
Movement 控制Scroll View滑动的方向
Drag Effect 拖动的效果(是否采用惯性)
Scroll Wheel Factor 鼠标滑轮滚动速度
Momentum Amount 滑动后,自动滑行的距离
Restrict Within Panel 是否自动在边缘处视口拉回
Restrict Within Panel 是否自动在边缘处视口拉回
Scroll Bars 添加滑动条控件
13. UIDragDropItem组件

作为组件继承,检测物件的拖动状态,并使其可以拖动

方法 功能 参数
OnDragDropRelease(GameObject surface) 鼠标抬起时候触发 下方第一个有BoxCoLLider的对象
OnDragDropStart() 开始拖动 -
OnDragDropMove(Vector2 delta) 拖动中 当前鼠标位置和开始拖拽时鼠标位置相对物体的偏移差
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity插件-NGUI 的相关文章

  • Unity—UGUI

    每日一句 读数 学习 去更远的地方 才能摆脱那些你不屑一顾的圈子 目录 InputFiled输入框 例 用户名和密码 Toggle组件 案例 冷却效果 InputFiled输入框 Text Component 输入文本组件 Text输入内容
  • unity game界面按下play会不断闪烁,按下暂停键(pause)或者中止/下一步(step),game界面的画面会接连变化

    没找到答案 改了两个下午的程序 改完还是这样 后来发现是FixedUpdate Update与OnDrawGizmos的问题 OnDrawGizmos是每帧都会绘制 用FixedUpdate理所当然就那啥了 分析的时候 就突然想到是不是这俩
  • Unity WebGL错误集锦

    ips 0 Unity的PlayerSettings的otherSettings或者Publish Settings里面的Enable Exceptions里面选择Full StackTrace 可以在打出的包中的浏览器的webgl打印出错
  • Unity中loading页加载的实现

    首先创建一个Global cs 使用单例用于存储场景的名字 便于后续脚本的调用 此脚本不必挂载在游戏物体上 using UnityEngine using System Collections public class Global Mon
  • Unity 安卓打包

    Unity打包的方式有很多种 自动打包和手动打包 今天小弟就鼓捣鼓捣unity手动打包 如果想动态打包的话 可以去看其他大佬的帖帖哈 unity打包先配置环境 下载unity的时候可以顺道把unity的安卓包下载下来 如果忘了也没事 可以从
  • c#获取cpu序列号

  • Unity动画控制器animator.CrossFade

    需要特别注意 1 CrossFade虽然可以不用任何逻辑来链接而直接跳转 但是CrossFade只能覆盖其他动画 当当前动画播放完毕而没有跳出这个动画时再次调用CrossFade将会失败 造成动画依旧停在原位 参数animator Cros
  • Unity Shader入门精要第七章 基础纹理之遮罩纹理

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 遮罩纹理 mask texture 是本章要介绍的最后一种纹理 它非常有用 在很多商业游戏中 都可以见到它的身影 那么什么是遮罩呢 简单来讲 遮罩允许我们
  • Unity中按钮检测鼠标状态

    改方法主要是用于按钮检测鼠标的进入 滑出 点击 抬起 长按 长按停止 1 先将下面这个脚本挂载到需要检测鼠标状态的按钮上 using System Collections using System Collections Generic u
  • Unity动画系统详解

    目录 动画编辑器 编辑器面板 动画复用 前言 人形重定向动画 Humanoid 通用动画 Generic 旧版本动画 Legacy 动画控制器 系统状态 切换条件 状态机脚本 IK动画 反向动力学 BlendTree 混合树 Animato
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • Unity学习笔记(一)—— 基础知识

    一 基础知识 1 开发团队组成 2 unity特点 图形界面 所见即所得 入门简单 支持C 比OC C 更友好 js 国内外资源丰富 因为使用的人多 跨平台性好 PC端 移动端等 对VR AR的支持最完善 3 成功案例 游戏 炉石传说 神庙
  • VLC for unity 插件如何使用

    VLC for unity 插件如何使用 先去下载一个VLC播放器 安装完成后 然后导入插件链接https download csdn net my 这个插件我的另一个上传资源里有 或者到商店去下载 这个插件链接下载完是一个txt文档 里面
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • 游戏开发常见操作梳理之NPC任务系统

    多数游戏存在任务系统 接下来介绍通过NPC触发任务的游戏制作代码 using System Collections using System Collections Generic using UnityEngine
  • 游戏开发创建操作之玩家信息系统的建立

    游戏一般都需要玩家信息系统 那么我们应该如何搭建玩家信息系统 接下来我将展示一种简单的方法 完整代码如下 using System Collections using System Collections Generic using Uni
  • 游戏开发常见操作梳理系列之——玩家信息的显示系统

    在游戏中 有不少游戏在左上角会出现玩家的头像和等级以及血量 这就是玩家的信息显示系统 那么这些是如何制作的呢 接下来我将讲讲代码的操作 其它操作我会在其它笔记中一一说明 敬请期待 信息的显示相当简单就是控制一些UI 然后在其它系统里面填写相
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文

随机推荐

  • PID控制原理说明与图解

    PID是比例 积分 微分的简称 一般常用于温度 速度等标量的控制 应用PID控制的系统存在对这些数值进行感测的传感器 又存在一个设定的目标值 这一种系统称为闭环控制系统 closed loop control system 系统中三个数值的
  • 工作能力构架框架图——我对工作的理解

    工作架构图 最近对工作内容进行了一次review 归纳如下 做简单地分享 job层 job层是我们最容易理解的一层 即我们平时的工作title 可能是销售 售前 产品等等 那么做产品的人能不能做售前呢 我想 肯定可以 因为在人力资源市场上
  • 解决eclipse出现launch failed,binary not found 的问题

    解决eclipse出现launch failed binary not found 的问题 仅作为解决问题的记录 问题描述 1 之前一直用eclipse写C 文件 后面学了java就用eclipse写了一些 java文件 但是偶然一次想要再
  • ValueError: column index (256) not an int in range(256)

    pandas 保存为xls时最大列为256 改为保存csv格式可避免该限制 解决方法 pd DataFrame in shp pre to csv 各区站点 file 14 17 csv
  • 软件开发管理参考网站

    BDD http en wikipedia org wiki Behavior Driven Development Scrum http zh wikipedia org zh Scrum UserCase http www hudong
  • Kubernetes 资源管理:最大化集群性能

    今天是 DevOps云学堂 与你共同进步的第 54天 Kubernetes 资源管理是部署和管理容器化应用程序的一个关键方面 它允许管理员控制系统不同部分之间计算资源的分配 例如CPU 内存和存储 有效的资源管理可确保应用程序获得正确运行所
  • Latex 字体的设置

    一 字体族的设置 1 说明 1 字体命令 textrm Roman Family 在花括号内的字体都是Roman Family 字体 2 字体声明 rmfamily Roman Family 该命令下面的字体都是是Roman Family字
  • Vim几种跳转方式

    Vim几种跳转方式 ps 以下时我常用的一些跳转指令 用于参考和复习记忆 还有一些后续会更新 文件内跳转 移动光标 普通模式下左h 右l 上k 下j 可以使用数字 hlkj 实现跳跃式移动 字符间跳转 跳转到当前字符的前面 普通模式下i 跳
  • CesiumJS三维案例

    WebGL近几年越来越被人们所关注 但是二三维开发难度也比普通web要高出许多 不管我们是在在开发或者是学习过程中 往往需要耗费大量的时间去查阅资料和研究官方案例 让本来就非常紧张的而宝贵的精力卷到了不关紧要的地方 而大多二三维的包 ope
  • apk文件结构解析一

    Apk文件用WINRAR压缩软件解压缩后 如下图所示 主要是三个文件 lib META INF res 和三个文件夹 AndroidManifest xml classes dex resources arsc 用工具展开可以看到如下所示的
  • Protobuf在java中的简单使用实例

    TTprotobuf是一种跨语言的数据转换协议 由google开源的 已支持大部份语言 在一般的数据交互过程中都是使用json xml等来做数据的转换 这其中涉及复杂的解析与序列化反序列化问题 如果在大量数据并发请求时 也会导致性能问题 p
  • Vue-过滤器

    Vue 过滤器 过滤器 过滤器 Filters 是vue 为开发者提供的功能 常用于文本的格式化 过滤器可以用在两个地方 插值表达式 和 v bind 属性绑定 过滤器应该被添加在JavaScript 表达式的尾部 由 管道符 进行调用 p
  • 图像增强之同态滤波python实现——20221204工作总结

    目录 参考 同态滤波python实现 代码 效果 参考 1 https wenku baidu com view 4eb598180a12a21614791711cc7931b765ce7ba9 html wkts 167005422236
  • IDEA 调试前端代码JS 及安装JetBrains IDE Support

    收藏从未间断 学习从未开始 不需要F12窗口 不需要JS代码写debugger断点 不需要写console log 输出 一 JetBrains IDE Support 1 必须使用谷歌浏览器 安装JetBrains IDE Support
  • go 进阶 sync相关: 一. sync.atomic​ 原子操作

    sync atomic 原子操作 一 sync atomic 基础 sync atomic Value 二 sync atomic 源码分析 1 ifaceWords 2 Store 添加 3 Load 获取 一 sync atomic 基
  • c#Replace用法

    string txt 333 333 txt Replace Console WriteLine 赋值前 txt txt txt Replace Console WriteLine 赋值后 txt
  • Grape 依赖管理器

    本文参考自Groovy文档 The Grape dependency manager 本文代码大部分来自Groovy官方文档 Groovy自带了一个嵌入式的jar依赖管理器 这个管理器的主要作用应该是配合Groovy脚本使用 让我们不需要任
  • Struts2 几种校验

    1 Struts2手动校验 1 重写actionsupport类的validate方法 action需要继承ActionSupport类 public class StrutshAction extends ActionSupport 在v
  • 三种基于感知哈希算法的相似图像检索技术

    大家都用google或baidu的识图功能 上面就是我搜索一幅图片的结果 该引擎实现相似图片搜素的关键技术叫做 感知哈希算法 Perceptual hash algorithm 它的作用是对每张图片生成一个 指纹 fingerprint 字
  • Unity插件-NGUI

    1 基本使用 NGUI gt 选项 gt Reset Perfab Toolbar 显示预制体UI组件 可以直接拖拽到场景中 使用NGUI 必须要有一个UIRoot作为父组件 在场景中的UIRoot中右键单击 然后点Create来创建组件