Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击

  • 前言
  • 一、给墙体增加一个刚体
  • 二、添加标签以便确认
  • 三、脚本
  • 四、Wall 的脚本
  • 五、攻击动画
  • 系列链接

前言

本文章是我学习SIKI学院Scanvenger项目所做笔记,原视频请自行搜索,
材质等相关资源请微信搜索SIKI学院公众号,回复120获取。源码也在里面。
游戏引擎:Unity3D2020.3
之前的Prefabs内容

一、给墙体增加一个刚体

二、添加标签以便确认

三、脚本

// 获得自身的colliderprivate BoxCollider2D collider;void Start(){rigidbody = GetComponent<Rigidbody2D>();collider = GetComponent<BoxCollider2D>();
}// 检测碰撞,首先禁用自身collider.enabled = false;RaycastHit2D hit =  Physics2D.Linecast(targetPos, targetPos + new Vector2(h, v));collider.enabled = true;if(hit.transform == null){targetPos += new Vector2(h, v);restTimer = 0; // 重新计时}else{switch (hit.collider.tag){case "OutWall":break;case "Wall":break;}}
restTimer = 0;     // 这个不能忘,否则一秒内清理完成   

攻击墙体,给TakeDamage的消息

四、Wall 的脚本

public class Wall : MonoBehaviour
{public int hp = 2;public Sprite damageSprite;// 受到攻击的图片// 受到攻击的时候public void TakeDamage(){hp -= 1;GetComponent<SpriteRenderer>().sprite = damageSprite;           //  获得受到攻击时候的图片,并且改变受到攻击时的墙体图片if (hp <= 0){Destroy(this.gameObject);  // 墙体没血销毁}}}

在 Damage Sprite 中放置受到伤害后的墙体

五、攻击动画

获得攻击动作

private Animator animator;
animator = GetComponent<Animator>();

播放攻击动画

系列链接

Scanvenger游戏制作笔记(一)Unity3D状态机转换
Scanvenger游戏制作笔记(二)控制玩家操作
Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击
Scanvenger游戏制作笔记(四)Unity3D控制角色吃食物
Scanvenger游戏制作笔记(五)控制敌人的移动
Scanvenger游戏制作笔记(六)Unity3D创建游戏UI的显示
Scanvenger游戏制作笔记(七)Unity3D控制游戏的失败
Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断
Scanvenger游戏制作笔记(九)Unity3D创建声音

Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击相关推荐

  1. Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断

    Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断 前言 一.每次移动判断是否到达终点 二.在移动函数中判断目标位置是否为终点 三.关卡胜利后,进入下一关 四.保留GameMana ...

  2. Ruby‘s Adventrue游戏制作笔记(十四)Unity播放游戏音效

    Ruby's Adventrue游戏制作笔记(十四)Unity播放游戏音效 前言 一.创建背景音乐 二.创建新的脚本 三.在其他需要播放的所有脚本中进行操作 四.给敌人添加音效 五.给玩家添加移动音效 ...

  3. Ruby‘s Adventrue游戏制作笔记(十二)Unity给角色添加简单的特效

    Ruby's Adventrue游戏制作笔记(十二)Unity给角色添加简单的特效 前言 一.把特效物品进行切割 二.创建 particle System 三.创建彩色球 四.再设置一下其他属性 五. ...

  4. Unity-业余2D游戏制作笔记02-Dialogue System for Unity使用

    纯新手,仅用于记录个人学习中遇到的问题. 目录 当前目标: C#的变量数值和LUA代码连接 (一)Dialogue System任务流程里简单的LUA代码修改变量 (二)Lua通过调用C#函数,来修改 ...

  5. Ruby‘s Adventrue游戏制作笔记(十)Unity添加动画

    Ruby's Adventrue游戏制作笔记(十)Unity添加动画 前言 一.给食物添加动画 二.给敌人添加动画 三.添加玩家动画 四.设置触发动画的脚本 系列链接 前言 本文章是我学习Unity官 ...

  6. Ruby‘s Adventrue游戏制作笔记(四)Unity绘制其他元素

    Ruby's Adventrue游戏制作笔记(四)Unity绘制其他元素 前言 一.修改地图层级,将Order in Layer 提高到-10 二.创建Prefabs 三.调整人物在其他元素的位置 四 ...

  7. Ruby‘s Adventrue游戏制作笔记(十七)Unity添加游戏胜利条件和失败条件和导出游戏

    Ruby's Adventrue游戏制作笔记(十七)Unity添加游戏胜利条件和失败条件和导出游戏 前言 一.添加两个相应的UI 二.导出游戏 系列链接 源代码和素材及游戏程序 前言 本文章是我学习U ...

  8. Ruby‘s Adventrue游戏制作笔记(十一)Unity角色攻击——发射子弹

    Ruby's Adventrue游戏制作笔记(十一)Unity角色攻击--发射子弹 前言 一.编辑子弹 二.创建脚本 三.修改玩家攻击脚本 四.将子弹拖入玩家脚本 五.让子弹碰撞到该碰撞的东西 六.编 ...

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

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

最新文章

  1. java 肌汉模式_设计模式之原型模式详解(附源代码)
  2. 阿里云https+nginx服务搭建
  3. Linux环境下Android开发环境的搭建
  4. 存储器间接寻址方式_8086微处理器的程序存储器寻址模式
  5. rmlv出错处理一例
  6. 实现机器学习的循序渐进指南V——支持向量机
  7. 数据结构上机实践第13周项目1 - 验证Prim算法的验证
  8. 使用Spring框架对接Twitter(一)
  9. 解决Docker for window与VMware虚拟机同时安装,造成虚拟机网络不通以及无法启动问题...
  10. Matlab系列教程_基础知识_绘图(二)
  11. 微信小程序的百度地图获取地理位置 —— 微信小程序教程系列(15)
  12. es修改排序_ElasticSearch自定义排序(转载)
  13. 机器学习笔记(17)使用XGBoost完成高维数据的分类任务
  14. python之股票数据分析
  15. nofollow、noopener和noreferrer标签的区别
  16. 2.Deep Neural Networks are Easily Fooled
  17. WPF MVVM设计模式下 相同Xaml绑定不同ViewModel问题
  18. 【数据分析】数据分析需要掌握的统计学理论基础知识
  19. Android开发越来越式微了吗?,爆火的Android面试题
  20. TVS管电路原理图符号及选型举例

热门文章

  1. 09组团队项目-Beta冲刺-1/5
  2. IDEA如何创建XML文件并用浏览器打开
  3. 【JavaScript】- 打地鼠游戏(定时器嵌套延时器)
  4. Renix签名字段详解——网络测试仪实操
  5. android 耳机检测,android 检测耳机是否插入方法
  6. 20160808某公司嵌入式面试总结(加个人答案)
  7. 旋转矩阵、欧拉角、四元数理论及其转换关系
  8. Android Studio 类微信界面的制作
  9. IOS如何发送大文件到QQ
  10. unix、window、linux、mac介绍