您的位置:首页 > 产品设计 > UI/UE

UGUI之Image使用以及技能释放CD

2016-02-19 09:21 561 查看
Image中Image组件中有一个重要的熟悉:Image type

当作UI的时候。很多时候会用到图片做背景
比如你把图片放大。你会看到边框就失真了。即变得模糊了,即图片变大。边框也变大了。所以就模糊了
来看看这几个属性的不同用法:
添加一个Image。并给Source Image赋精灵,默认是Simple属性,
图片默认大小:

当图片放大,图片会变得模糊

所以这是不允许的。
一般我们不希望图片的边框跟着图片一起放大缩小,那怎么办呢。
这里就可以使用九宫切图
这时候会用到Image type的第二选项:Sliced
当选择Sliced的时候。下面会提示警告:说这个图片没有边框

首先把图片切成九宫图
选中图片,Sprite Editor

拖动绿色的点开始切图

 

其实也就是改变了Border

这样就分成了9格
那么这么切分成9格有什么好处呢。当我们利用它来做背景图片的时候,
1:4个角不会被拉伸
2:左右边框只会上下拉伸,
3:上下边框只会左右拉伸
只用中间那部分才会进行拉伸填充
现在设置完成后 Apply一下
在视图中看效果

记住:类型一定要是九宫格类型

Tiled类型
选择Tiled你会发现

Tiled其实就是按照当前图片的大小进行平铺总个空间
Filled类型
Filled是用来显示当前图片的某一部分的。默认呢。是全部显示(Radial 360)

Radial 360表示以圆的方式进行切割
Fill Amout表示切割哪一部分
用这个可以做技能释放,先看看效果



可以通过鼠标单击和使用快捷键(数字1)来释放技能。它有一个冷却时间。在冷却时间内。重复单击是无效的。
那么一起来看看是怎么实现的。

skillitem是最底部的背景图片
Image是技能图片
FillImage也技能图片。设置它颜色为黑色。透明度设置办透明,
Image type设置为Filled,设置从顶部开始切割。这样就可以通过改变Fill Amount属性来实现技能释放效果
具体见图:

Text是显示数字的。用来做快捷键
为了能让skillitem对象有单击事件。所以要添加Button组件
,UI部分已经完成。接下来就是代码部分
创建一个脚本。挂在到skillitem上。注册click事件

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class newItem : MonoBehaviour
{
//冷却需要时间
public float codeTime = 5;
//冷却中
bool isStart = false;
//记录冷却的时间
public float timer = 0;

//释放的图片
Image image;

//快捷键
//这样的好处是不在代码中写死。可以直接在界面修改
public KeyCode keycode;

// Use this for initialization
void Start()
{
image = GameObject.Find("FillImage").GetComponent<Image>();
}

// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(keycode))
{
isStart = true;
}

if (isStart)
{
timer += Time.deltaTime;

//codeTime - timer剩下的时间中codeTime中的比例
image.fillAmount = (codeTime - timer) / codeTime;

//冷却时间到
if (timer >= codeTime)
{
image.fillAmount = 0;
timer = 0;
isStart = false;
}
}
}

/// <summary>
/// 开始单击
/// </summary>
public void BtnClick()
{
isStart = true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: