unity3D学习中NGUI多技能冷却制作Word文档下载推荐.docx
- 文档编号:22223340
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:4
- 大小:15.88KB
unity3D学习中NGUI多技能冷却制作Word文档下载推荐.docx
《unity3D学习中NGUI多技能冷却制作Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《unity3D学习中NGUI多技能冷却制作Word文档下载推荐.docx(4页珍藏版)》请在冰豆网上搜索。
5.根据步骤4再做一个其他技能,一般我们都是把技能放在屏幕的右下角并设置好锚,如下图
6.好了,UI我们做完了,现在我们新建一个脚本“Skill”,我们把它绑定到所有技能的父对象“Skill”上,在这里我把脚本贴出来
usingUnityEngine;
usingSystem.Collections;
publicclassSkill:
XMBaseMonoBehaviour{
//冷却时间
publicfloatm_coolTime=2f;
//是否正在冷却
publicboolm_isLightningCooling=false;
publicboolm_isKillCooling=false;
//是否按下
publicboolisDownLightning=false;
publicboolisDownkill=false;
//技能
GameObjectm_go_skill_lightning;
GameObjectm_go_skill_kill;
//冷却遮罩
GameObjectm_go_Lightning_coolMask;
UISpritem_spr_Lightning_coolMask;
GameObjectm_go_Kill_CoolingMask;
UISpritem_spr_Kill_CoolingMask;
//绑定控件
protectedoverridevoidXMAwake()
{
base.XMAwake();
Bind(refm_go_skill_lightning,"
Skill_Lightning"
);
UIEventListener.Get(m_go_skill_lightning).onClick=OpenSkill_Lightning;
Bind(refm_go_skill_kill,"
Skill_Kill"
UIEventListener.Get(m_go_skill_kill).onClick=OpenSkill_Kill;
Bind(refm_go_Lightning_coolMask,"
Lightning_CoolingMask"
m_spr_Lightning_coolMask=m_go_Lightning_coolMask.GetComponent<
UISprite>
();
Bind(refm_go_Kill_CoolingMask,"
Kill_CoolingMask"
m_spr_Kill_CoolingMask=m_go_Kill_CoolingMask.GetComponent<
}
//打开必杀技能
privatevoidOpenSkill_Kill(GameObjectgo)
//开启按下技能的状态
isDownkill=true;
//打开闪电技能
privatevoidOpenSkill_Lightning(GameObjectgo)
isDownLightning=true;
//Usethisforinitialization
voidStart(){
//Updateiscalledonceperframe
voidUpdate(){
if(isDownkill)
Skill_Kil();
if(isDownLightning)
Skill_Lightning();
//闪电技能
voidSkill_Lightning()
//如果没有进入冷却状态,就打开冷却状态
if(!
m_isLightningCooling)
m_spr_Lightning_coolMask.fillAmount=1f;
m_isLightningCooling=true;
//如果进入冷却状态,冷却遮罩就随设定的时间减少
if(m_isLightningCooling)
//减少冷却遮罩
m_spr_Lightning_coolMask.fillAmount-=(1f/m_coolTime)*Time.deltaTime;
//当冷却遮罩快没有的时候,关闭冷却遮罩,并且退出按下技能的状态
if(m_spr_Lightning_coolMask.fillAmount<
=0.01f)
m_isLightningCooling=false;
m_spr_Lightning_coolMask.fillAmount=0;
isDownLightning=false;
//必杀技能
voidSkill_Kil()
m_isKillCooling)
m_spr_Kill_CoolingMask.fillAmount=1f;
m_isKillCooling=true;
if(m_isKillCooling)
m_spr_Kill_CoolingMask.fillAmount-=(1f/m_coolTime)*Time.deltaTime;
if(m_spr_Kill_CoolingMask.fillAmount<
m_isKillCooling=false;
m_spr_Kill_CoolingMask.fillAmount=0;
isDownkill=false;
运行点击技能,效果如下
注:
脚本中的protectedoverridevoidXMAwake方法是重写我自己写的另一个脚本,用来绑定控件,避免了拖拽,当然你也可以把对象引用改为public,用拖拽的方式进行实例。
之前的代码我是用枚举来判断按下技能的类型和一个是否按下的布尔类型来判断是否按下,结果只能实现单技能的冷却遮罩,经过修改代码总结每一个技能都需要两个布尔类型的变量来判断,即是否按下,是否冷却。
其实之前写的脚本也可以用,只不过每一个技能都需要绑定该脚本,作为程序员怎么可以容忍这种事情发生了,万一有千千万个技能呢,哈哈开玩笑的!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- unity3D 学习 NGUI 技能 冷却 制作