unity3D学习中NGUI多技能冷却制作_第1页
unity3D学习中NGUI多技能冷却制作_第2页
unity3D学习中NGUI多技能冷却制作_第3页
unity3D学习中NGUI多技能冷却制作_第4页
unity3D学习中NGUI多技能冷却制作_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、技能是游戏的一个重要组成部分,例如下图,现在很多手机游戏都 需要用到技能效果,现在我给大家讲讲用NGUI制做技能冷却的效果。般技能由技能栏,技能图标和冷却遮罩组成,我们需要自己准备一下 相应的图集新建一个UIRoot2D,在下面新建一个空对象,更名为Skill”,用 来存放所有的技能。新建一个sprite作为我们的技能栏,也就是技能背景,更名为Skill_Kill”。3.新建一个sprite作为我们的技能图标,更名为Kill”。4.新建一个sprite作为我们的冷却遮罩,更名为“Kill_CoolinMask”,Type 选择 Filled , FillDir 是我们遮罩的类型, 默认是Rad

2、ial360 ,其他类型也可以用,大家可以自己试一试,点击 ColorTint调节透明度,我这里是用145的透明度,让冷却遮罩在冷却 时也可以看到技能,大家可以根据自己的需求自己设置。冷却遮罩最重 要的一个属性是FillAmoun,当他为0时,遮罩不会显示,当他为1 时,遮罩会完全显示,我们默认他为0不显示遮罩,现在大家应该知道 他的作用了吧。文章来自【狗刨学习网O亍9 1/ Kill_C 口口 lung MaskStatic ST,丿TrjnsfoniG条p X 0Y 0Z 0Z 0s X 1Y 1Z 1 UlSprfte (Script) 0.Atas* Mcibile Ciitoon S

3、gil (UlAtlias)。 EditSpriteChck_&opeFllltdiL TFlipNtxthinqtFill Dir*Fill AmiOLintInvert FillF-l5.根据步骤4再做一个其他技能,一般我们都是把技能放在屏幕的右下角并设置好锚,如下图6.好了,UI我们做完了,现在我们新建一个脚本Skill”,我们把它绑定到所有技能的父对象Skill”上,在这里我把脚本贴出来using UnityEngine;using System.Collections;public class Skill : XMBaseMonoBehaviour /冷却时间public float

4、 m_coolTime = 2f;/是否正在冷却public bool m_isLightningCooling = false;public bool m_isKillCooling = false;/是否按下public bool isDownLightning = false;public bool isDownkill = false;/技能GameObject m_go_skill_lightning;GameObject m_go_skill_kill;/冷却遮罩GameObject m_go_Lightning_coolMask;UlSprite m_spr_Lightning_

5、coolMask;GameObject m_go_Kill_CoolingMask;UISprite m_spr_Kill_CoolingMask;/绑定控件 protected override void XMAwake()base.XMAwake();/技能Bind(ref m_go_skill_ligh tn ing, Skill_Ligh tn ing);UIEventListener.Get(m_go_skill_lightning).onClick = OpenSkill_Lightning;Bind(ref m_go_skill_kill, Skill_Kill);UIEvent

6、Listener.Get(m_go_skill_kill).onClick = OpenSkill_Kill;/冷却遮罩Bind(ref m_go_Lightning_coolMask,Ligh tn ing_Cooling Mask);m_spr_Lightning_coolMask =m_go_Lightning_coolMask.GetComponentUlSprite();Bind(ref m_go_Kill_CoolingMask, Kill_Cooling Mask);m_spr_Kill_CoolingMask = m_go_Kill_CoolingMask.GetCompone

7、ntUlSprite();/打开必杀技能private void OpenSkill_Kill(GameObject go)/开启按下技能的状态isDownkill = true;/打开闪电技能private void OpenSkill_Lightning(GameObject go)isDownLightning = true;/ Use this for initializationvoid Start () / Update is called once per framevoid Upda te () if (isDownkill)Skill_Kil();if (isDownLigh

8、tning)Skill_Lightning();/闪电技能void Skill_Lightning()/如果没有进入冷却状态,就打开冷却状态if (!m_isLightningCooling)m_spr_Lightning_coolMask.fillAmount 二 If;m_isLightningCooling = true;/如果进入冷却状态,冷却遮罩就随设定的时间减少if (m_isLightningCooling)/减少冷却遮罩m_spr_Lightning_coolMask.fillAmount -二(If / m_coolTime) * Time.deltaTime;/当冷却遮罩快

9、没有的时候,关闭冷却遮罩,并且退出按 下技能的状态if (m_spr_Lightning_coolMask.fillAmount 二 O.Olf) m_isLightningCooling = false;m_spr_Lightning_coolMask.fillAmount 二 0; isDownLightning = false;/必杀技能void Skill_K il()if (!m_isKillCooling)m_spr_Kill_CoolingMask.fillAmount 二 f;m_isKillCooling = true;if (m_isKillCooling)m_spr_Ki

10、ll_CoolingMask.fillAmount -二(If / m_coolTime) * Time.deltaTime;if (m_spr_Kill_CoolingMask.fillAmount 二 O.Olf) m_isKillCooling = false; m_spr_Kill_CoolingMask.fillAmount 二 0; isDownkill = false;运行点击技能,效果如下注:脚本中的protectedoverridevoidXMAwake 方法是重写 我自己写的另一个脚本,用来绑定控件,避免了拖拽,当然你也可以把 对象引用改为public,用拖拽的方式进行实例。之前的代码我是用枚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论