官方主页
门户
Portal
论坛
BBS
动漫资讯
G科技
GALAXIX合作
帮助
Help
GX搜索
积分: 0
设置
道具
勋章
任务
退出
登录
注册
用户名
Email
自动登录
找回密码
密码
登录
立即注册
GALAXIX动漫大陆
>
论坛
›
游戏制作研究
›
Unity3D引擎学习
返回列表
查看:
2728
|
回复:
0
unity技能CD的实现方式
[复制链接]
天の川
天の川
当前离线
积分
3950
窥视卡
雷达卡
906
主题
954
帖子
3950
积分
管理员
积分
3950
发消息
发表于 2018-11-15 09:23:43
|
显示全部楼层
|
阅读模式
技能CD的实现方式。
打开Unity新建一个项目,
创建一个技能的按钮(Button),顶级导航栏GameObject->UI->Button
可以看到,我们的Button已经创建好了
可以看到一个Canvas(画布),ps:做屏幕适配就需要给画布添加一个组件
具体的创建按钮,要是不会的可以搜一下
创建好一个技能按钮之后,再创建一个遮罩,也就是Image,和创建按钮的步骤一样
接着点击我们刚刚创建的Image,在Inspector找到下图的控件
点击Image Type 选择 Filled
Fill Origin 从哪里开始,
Fill Amount填满量。
Clockwise 没错,顺时针方向。
Preserve Aspect 图像的宽度和高度是保持原始比例的还是重新调整
设置完成,创建一个C#代码(注意,那个引号部分要写你场景中的图片实例名称)
using UnityEngine;
using System.Collectio自行去掉汉字ns;
using UnityEngine.UI;
public class v1 : MonoBehaviour
{
//UIImageButton sprite;
//public GameObject sprites;
Image sprite;
public GameObject sprites;
// Use this for initialization
bool isskillcd = false;
/*
* 开始获取到实例对象
*/
void Start()
{
sprite = gameObject.GetComponent<Image>();
sprites = GameObject.Find("Image");
/*
开始先把遮罩隐藏掉
*/
sprites.SetActive(false);
//sprite.fillAmount = 0;
Debug.Log("" + sprite);
Debug.Log(".." + sprite.fillAmount);
}
public void skillsstart()
{
isskillcd = true;
/*
点击技能按钮之后显示技能cd(遮罩)
*/
sprites.SetActive(true);
}
// Update is called once per frame
void Update()
{
/*
根据isskillcd值来判断是不是点击了,是不是该进行运算了
*/
if (isskillcd == true)
{
sprite.fillAmount -= 0.01f;
Debug.Log(".." + sprite.fillAmount);
/*
当遮罩的填满量(fillAmount)为零的时候,重新把遮罩的填满量为1
这里1表示fillAmount为填满,0表示空,
*/
if (sprite.fillAmount == 0)
{
sprite.fillAmount = 1;
sprites.SetActive(false);
}
}
// sprite.fillAmount -= 0.1f;
}
}
复制代码
把脚本拖到新建的Image上,记得给建好的Image一个图片,
然后点击我们创建的Button,在On Click
把Image拖到红色方框内,在红色的椭圆里面,选择我们刚刚写的那个脚本
运行一下看一下效果,
关注galaxixv,官方微信公众号。
GALAXIX UE4 讨论学习群 140439020
UE4精英学习群 12762592
UNITY学习群 194092348
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
最佳新人
注册账号后积极发帖的会员
快速回复
返回顶部
返回列表