图集制作Atlas
精灵图集 ->
制作图集:
- 选择需要的图片
- 点击Create即可形成图集
按钮制作
-
创建Sprite,选择Sprite,鼠标右键选择Attach,添加BoxCollider
-
选择Sprite,鼠标右键选择Attach,添加ButtoneScript
注意:如果是通过在unity中AddComponent,将BoxCollider勾选 (自动适应UI大小)
is trigger勾选
实现按钮点击事件
找到按钮-> 把带有脚本的物体放到
->在Method找到要调用的方法。
精灵Type
sliced 可以使图片在缩放时中间部分拉伸,边框保持不变.
Tiled 平铺,图片若太小会自动放置多个.
Filled 填充,逐渐出来例如血条效果,技能冷却效果.
Advance 高级 可在图片9宫格设置不同效果
NGUI中文字体:
NGUI字体:须先制作预制件
步骤: 创建空物体 添加NGUI font组件 --> dynamic --> 拖拽字体 --> 制作预制件
unity字体:直接拖拽到Font组件处即可
2D精灵动画
- 创建2D精灵unity 2D sprite
- 添加 UI2D Sprite Animation组件
- 将图片设置为精灵模式,并且为可切割的
到 ->
,将图片切割好,Apply。
- 最后到
将精灵依次给到相应位置即可。可通过
调节速度。
开关制作
- 创建精灵->Attach BoxCollider->
在子集中创建精灵(选择点击开关时显示的图片)
- 将子集精灵拖到父级相应位置,
- StartState是指开关的初始状态。
滑竿制作
- 创建Sprite,给深度值较高的精灵,添加BoxCollider,再添加
。
- 创建Sprite作为子集
Foreground前景图(此处当鼠标拖拽滑竿时,会有伸缩效果)
Background背景图(固定不动)
Thum(此处创建一个精灵拖到此处,可形成游标效果显示
) - Direction滑竿方向
滑竿数值百分比显示
- 找到滑动条组件
, ,将创建的UILable拖拽到
- 调用UILable.SetCurrentPercent方法
下拉菜单制作
- 在背景精灵中添加BoxCollider ,以及 组件
将需要的下拉菜单选项输入Options中
- 将Lable拖拽到
,(作用:弹出菜单选择的内容将显示在Lable中)。
默认按钮Labe内容。
设置菜单按钮自动,向上,向下弹出。
UIPlayerTween组件使用
- 创建一个精灵,给精灵添加碰撞,并添加PlayTweenScript组件。
- 录制一组Tween动画,录制好后,将Tween动画组件隐藏(之后会通过点击精灵控制这组动画的播放)。
- 将需要控制Tween动画的UI放到PlayTweenScript组件的
位置
- PlayTweenScript组件中
为触发动画的方式,设置成
为点击触发。
动画播放的方向:
来回方向播放,
正常方向播放,
相反方向播放。
聊天
- 创建输入区域以及显示区域
- 给输入区域添加ChatInput组件
- 给聊天显示区域添加UITextList组件
- 若需要滑动条,可放到ScrollBar位置。
定制滑动区域
- 创建背景精灵。
- 创建
(可滑动区域)作为背景精灵子集(利于管理)。
- 创建物品精灵,作为滑动区域的子集。
- 给物品精灵添加BoxCollider以及可在滑动区域滑动组件
若也需要拖拽滑动区域背景时有滑动效果,也可给背景添加碰撞以及滑动区域拖拽滑动组件
滑竿控制滑动效果
- 将滑竿拖到场景中
- 将垂直/水平滑竿放到
组件中相应的属性中
(若只需要水平/垂直,只拖拽一种即可)
- 若既想实现水平,也想垂直拖拽,不要忘记设置
任意方向滑动。Custom 是自定义滑动方向及偏移量。
精灵拖拽效果
- 给物品精灵添加BoxCollider,添加拖拽组件
- 若需要拖拽的精灵在所有UI最前方显示,创建深度值较高的panel并添加
拖拽的物品栏排序
- 创建Grid(并注意形成父子关系),然后右键execute
。
- 设置Grid为平行布置还是垂直布置
3.设置物品栏之间间隔。
如何排序。
对齐方式。
是否有平滑动画
留在某个精灵背景上
将背景精灵添加拖拽容器组件 。
将停留的物品进行排序
- 创建Grid,并拖到容器组件的
位置。
- 设置Grid位置以及间隔距离。
滑动条和开关
using UnityEngine;
using System.Collections;
public class UIManager : MonoBehaviour {
public UISprite backSprite;//背景精灵
public AudioSource audio;
/// <summary>
/// 滑动条
/// </summary>
public void SliderFunc()
{
audio.volume = UISlider.current.value;//控制音量大小
print("滑动条数值 : " + UISlider.current.value);
}
/// <summary>
/// 开关
/// </summary>
public void ToggleFunc()
{
audio.mute = !UIToggle.current.value;//控制背景音效静音/正常播放切换
print("开关效果 : " + UIToggle.current.value);
}
public void Red () {
backSprite.color = Color.red;
}
public void Blue () {
backSprite.color = Color.blue;
}
}
背包拖拽排序
using UnityEngine;
using System.Collections;
public class MyDrag : UIDragDropItem
{
//拖拽结束时
//surface拖拽结束时碰到的精灵
protected override void OnDragDropRelease(GameObject surface)
{
base.OnDragDropRelease(surface);
Transform releaseParent = transform.parent;
if (surface != null)
{
if (surface.tag == "Back"){
transform.parent = surface.transform;
transform.localPosition = Vector3.zero;
}
else if (surface.tag == "Obj"){
Transform surfaceParent = surface.transform.parent;
transform.parent = surfaceParent;
transform.localPosition = Vector3.zero;
surface.transform.parent = releaseParent;
surface.transform.localPosition = Vector3.zero;
}
}
else
transform.localPosition = Vector3.zero;
}
}