Unity实战 RTS3D即时战略游戏开发(十三) 伤害更新信息显示、销毁单位、爆炸效果
来源:互联网 发布:silverlight5 for mac 编辑:程序博客网 时间:2024/06/11 18:41
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。今天我们来讲游戏的最后部分:伤害更新信息显示、销毁单位、爆炸效果。
上一章我们的单位能相互攻击了,但是还不能刷新数据,这里我们将修改脚本使选中的时候能刷新数据,找到ShowUnitInfo脚本,在其顶部声明一个bool变量,用来确定是否显示数据,编辑如下:
using UnityEngine;using System.Collections;public class ShowUnitInfo : Interaction {public string Name;public float MaxHealth, CurrentHealth;public Sprite ProfilePic;bool show = false; //是否显示信息public override void Select (){show = true; //选中的时候信息显示}void Update (){if (!show)return;InfoManager.Current.SetPic (ProfilePic);InfoManager.Current.SetLines (Name, CurrentHealth + "/" + MaxHealth,"Owner: " + GetComponent<Player> ().Info.Name);}public override void Deselect (){InfoManager.Current.ClearPic ();InfoManager.Current.ClearLines ();show = false;}}
这样就可以明显的看到玩家伤害实时刷新了,接下来我们要在HP<0的时候销毁单位。在Battle文件夹下新建一个DestroyOnNoHealth脚本,并编辑:
using UnityEngine;using System.Collections;public class DestroyOnNoHealth : MonoBehaviour {public GameObject ExplosionPrefab; //死亡效果private ShowUnitInfo info; //显示信息// Use this for initializationvoid Start () {info = GetComponent<ShowUnitInfo> ();}// Update is called once per framevoid Update () {if (info.CurrentHealth <= 0) {Destroy (this.gameObject); //销毁物体 GameObject.Instantiate (ExplosionPrefab, transform.position, Quaternion.identity); //添加爆炸效果}}}
返回到Unity中,找到DroneUnit预设,为其添加DestroyOnNoHealth脚本,然后找到AttackInRange脚本,声明一个变量来表示冲击波特效预设
public GameObject ImpactVisual; //表示可见的冲击波,只是一个射击效果然后在Attack方法中初始化
void Attack(){if (target == null)return;target.CurrentHealth -= AttackDamage;GameObject.Instantiate (ImpactVisual, target.transform.position, Quaternion.identity); //产生伤害的时候出现冲击波效果}
这样就在代码中设置好了爆炸效果了,接下来我们为其添加爆炸预设,爆炸特效我们就不自己制作了,我们直接在UnityAssetStore中使用这个免费插件,如图
这个自己在官网下载就可以了,当然如果你有特NB的特效也可以不用这个,找到DroneUnit为其添加特效,如图:
这样我们就拥有了自己的RTS即时战略游戏了。最终源码:链接:http://pan.baidu.com/s/1i4XPnLj 密码:83k7 欢迎大家下载
到了这里,我们的游戏开发就结束了。如有什么疑问希望大家可以在QQ群或者公众号留言。欢迎大家加入QQ群:280993838 或者关注我的公众号:
1 0
- Unity实战 RTS3D即时战略游戏开发(十三) 伤害更新信息显示、销毁单位、爆炸效果
- Unity实战 RTS3D即时战略游戏开发(八) HUD的使用 单位信息显示
- Unity实战 RTS3D即时战略游戏开发(七) 信息显示
- Unity实战 RTS3D即时战略游戏开发(十一) 单位生产
- Unity实战 RTS3D即时战略游戏开发(一)
- Unity实战 RTS3D即时战略游戏开发(二)
- Unity实战 RTS3D即时战略游戏开发(三)
- Unity实战 RTS3D即时战略游戏开发(四)
- Unity实战 RTS3D即时战略游戏开发(五) 鼠标管理器
- Unity实战 RTS3D即时战略游戏开发(十) AiController
- Unity实战 RTS3D即时战略游戏开发(八) HUD的使用 小地图显示
- Unity实战 RTS3D即时战略游戏开发(六) Navigation Mesh 自动寻路
- Unity实战 RTS3D即时战略游戏开发(九) 行为管理器 Action的使用
- Unity实战 RTS3D即时战略游戏开发(十) 可建造地点标示
- Unity实战 RTS3D即时战略游戏开发(十一) 建造AI、生产AI
- Unity实战 RTS3D即时战略游戏开发(十二) 战斗AI的控制
- Android游戏开发之爆炸效果
- Android游戏开发之爆炸效果
- 445. Add Two Numbers II leetcode (list)
- java集合的三大遍历方式
- 工作中关于webview同步cookie遇到的坑
- goole推出图片加载库GLIDE
- 北京天宇联科技有限责任公司—T语言的语法
- Unity实战 RTS3D即时战略游戏开发(十三) 伤害更新信息显示、销毁单位、爆炸效果
- 20.职责链模式
- 初识springboot
- ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57
- ArrayList的equals()方法解析
- Parallels Desktop虚拟的Centos系统设置静态IP连网
- MySQL下“Can’t create/write to file xxx (Errcode: 13)”错误的解决方法
- 模拟表单提交
- Android之定时刷新数据