亡命时速游戏制作6

1.在亡命时速游戏制作5的基础上,这次我们要给敌人制作一些损伤系统。
找到在GameScene中的PoliceCar,单击右键选择Duplicate,复制一辆警车,然后在场景中将其用鼠标拖到PoliceCar的右边。这时候,你运行的话,你会发现有两辆小车碰在一起并跟着前面的小车,在相互追逐。

2.我们创建一个损伤脚本,在Scripts下创建一个C#脚本,取名为Damage。我们把Damage的脚本加到PoliceCar上,双击Damage进行编辑。
代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Damage : MonoBehaviour{[SerializeField]private float invincibleTime = 2; //创建个浮点无敌时间[SerializeField]    //将生命数值序列化,以便我们在监视面板中编辑它private int life =3; //创建生命力字段,默认为3,用来决定车辆可以碰撞几次private float currentInvincibleTime;  //用来追踪剩余的无敌时间private int currentLife;   //创建当前生命,用来检查敌人剩余可以撞击多少次private bool isColliding =false;    //当敌人车辆同另外一个敌人车辆碰撞的时候正在碰撞(isColliding)会被调用//Use this for initializationvoid Start(){currentLife = life; //开始时,满生命值}//Update is called once per framevoid Update(){if(Colliding==true)  //当碰撞的时候,减少无敌时间{currentInvincibleTime -= Time.deltaTime;if(currentInvincibleTime <= 0){ReduceLife();}}}//互相碰撞时减少生命private void OnCollisionStay(Collision other) //当两个物体碰撞时会调用函数(碰撞逗留){if(other.collider.CompareTag("Enemy"))    //比较标签是否为Enemy{isColliding = true;}}private void OnCollisionExit(Collision other){if(other.collider.CompareTag("Enemy")) //比较标签是否为Enemy{isColliding = false;}}public void ReduceLife(){currentLife--;currentInvincibleTime = invincibleTime;if(currentLife <= 0)   //如果生命值小于0,就调用一个信息函数{Debug.Log("Enemy Destroyed");     //停用这个游戏对象gameObject.SetActive(false);  //设置活动状态为否}}
}

3.保存代码,然后返回到unity 3d中。我们在GameScene中找到PoliceCar,点击一下,在其右边找到Apply,进行点击。

4.我们此时可以运行一下,我们可以发现当后面的两辆当碰撞一定次数后会消失。此时我们可以让相关信息进行显示。点击PoliceCar,在其右边,点击右上角的小三角处,点击Debug,然后我们可以在Damage中看到相关信息。

5.接着,我们要创建一些特效,需要对原来的脚本的代码进行修改,补充。需要补充的地方,在下图中,我做了标记,为行号处为黄色的地方。


6.保存代码后,我们继续回到unity 3d中,将PoliceCar1删去,点击PoliceCar,右键单击选择Create empty,然后将创建的空物体改回Normal的状态,并将其名称改为FX,我们把效果存在FX中。


7.我们先找到Prefabs文件夹,然后将其中的FX_Fire拖到FX中。

然后双击FX_Fire,在场景中将其拖到如图位置,然后将其停用;同理,将FX_Smoke拖到FX中,对其进行与FX_Fire相同的操作。

8.点击PoliceCar,将效果拖到对应的位置上。

9.将爆炸效果直接拖到GameScene中,然后在其右边Particle System,点击右上角的小三角,选择Remove Component,将这个组件移除掉。并将其改名为Explosion。


10.将Explosion拖到下方的Prefabs文件夹中,然后删去。

11.将爆炸效果拖到PoliceCar的对应位置上,如图。

12.我们像先前一样复制PoliceCar,得到PoliceCar1,并在场景中将其拖到右边。

13.此时,我们运行一下场景,就可以看到小车追逐过程中会有一些效果。
我们此时可以再做一些修改(如下图所示):


14.我们已经完成了小车的损伤系统。

敬请期待:亡命时速游戏制作(七)

U3D-亡命时速游戏制作(六)相关推荐

  1. U3D-亡命时速游戏制作(三)

    亡命时速游戏制作3 1.在亡命时速游戏2的基础上,我们在Project中新建一个Scripts的文件夹,用于存放之后我们要写的脚本. 2.我们打开在mmmm文件下的子文件夹Vehicles,选择车辆1 ...

  2. U3D-亡命时速游戏制作(五)

    亡命时速游戏制作5 1.在亡命时速游戏制作4的基础上,这次我们要来添加敌人. 首先,在Settings下的Vehicles,选择veh_car1,将其拖到GameScene中,并在Scene场景中将其 ...

  3. U3D-亡命时速游戏制作(二)

    亡命时速游戏制作: (二): 1.保存(一)中的已经导入素材资源后的游戏场景,文件名随意,推荐取名为GameScene.(file---->save scenes) 2.找到菜单栏中的Windo ...

  4. U3D-亡命时速游戏制作(一)

    亡命时速游戏制作: (一): 1.打开Unity 3d, 新建一个项目. 2.打开屏幕左上角的file,选择Build Settings,然后选择Android平台,点击Switch Platform ...

  5. U3D-亡命时速游戏制作(四)

    亡命时速游戏制作4 1.在亡命时速游戏制作3的基础上,我们发现小车在运行时容易跑到屏幕外面,我们此时就无法观察,因此我们要使相机跟随小车的运动. 我们选择主摄像机(Main Camera),将它的Po ...

  6. html5游戏制作入门系列教程(六)

    我们继续这一系列文章,使用HTML5的canvas组件进行游戏开发.今天,我们将创建我们的第一个完整的游戏 – 打砖块.在这一课中,我会告诉你如何检测基本的碰撞和HTML5的本地存储.您可以使用鼠标和 ...

  7. 微信小游戏制作坦克大战(六)碰撞检测,主角坦克碰到敌方坦克、炮弹爆炸

    微信小游戏制作坦克大战(六)碰撞检测,主角坦克碰到敌方坦克.炮弹爆炸 导入坦克爆炸效果的图片和声音素材 给主角坦克添加事件 给爆炸动画添加事件 当主角坦克碰到敌方坦克或者炮弹时显示爆炸效果 下一篇文章 ...

  8. 【Unity】U3D TD游戏制作实例(一)创建敌人、加载预制件

    文章目录 前言 本章实现效果 场景和敌人 文件目录结构 场景层次结构(Hierarchy) 处理模型 指定GameScript脚本 运行游戏 前言 TD(炮台防守)类游戏是比较经典的游戏类型,当年在 ...

  9. Ruby‘s Adventrue游戏制作笔记(十六)Unity子弹数量及其UI

    Ruby's Adventrue游戏制作笔记(十六)Unity子弹数量及其UI 前言 一.创建新的UI 二.编辑脚本 三.创建获得子弹的道具 系列链接 前言 本文章是我学习Unity官方项目项目所做笔 ...

最新文章

  1. 消息幂等(去重)通用解决方案,真顶!
  2. 德鲁克管理思想:管理的7大理论、43条原则,每一条都是精华
  3. 迭代法求解线性方程组
  4. 对accuracy、precision、recall、F1-score、ROC-AUC、PRC-AUC的一些理解
  5. GRUB基本使用介绍
  6. 11个三相异步电动机常见故障与维修方法。
  7. 深入解读EOS源代码之——区块链内核
  8. 闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群
  9. 质问微软 WP8.1开发HTTPS 真费劲
  10. Eclipse 控制console
  11. opacity透明度兼容性 css/js/query三种
  12. linux+sasl认证失败,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  13. github 分支 合并
  14. 区块链清明上河图 2018Q3
  15. OA流程 工作流设计
  16. Codevs 1066 引水入城 2010年NOIP全国联赛提高组 BFS + 贪心
  17. 求解马走棋问题(回溯法)
  18. Qt对话框的事件循环分析(子线程中不能创建UI窗体分析2)
  19. ubuntu 更换国内源各大站点速度排名(江苏地区)
  20. 当前打印机不可用,请选择其他打印机

热门文章

  1. 如何解决margin塌陷以及margin合并
  2. matlab鼠标光标变黑,技术员应对win7系统鼠标光标变成黑色方块了的解决办法
  3. cisco中的管道符号(include begin section)
  4. 劲舞团连接服务器中断,劲舞团与服务器中断连接的解决办法有哪些?
  5. 图论——AOV网络及拓扑排序
  6. AUTOCAD——快速计算器
  7. 大型扫码点餐小程序系统源码
  8. php plog使用,pLog安装在PHP5下无法进入管理界面问题的解决
  9. 绘制二元正态分布的密度函数图和等高线图MATLAB
  10. The bean ‘xxImpl‘ could not be injected as a ‘xxx‘ because it is a JDK dynamic proxy that implements