【2D游戏制作笔记】给游戏战斗增加一点打击感
目录
- 1、敌人颜色改变
- 2、相机震动
- 3、击退效果
- 4、受击特效
- 5、音效
以下内容是对自己制作过程中遇到问题的记录,不一定科学准确。
1、敌人颜色改变
学习链接
当敌人受到攻击时,改变敌人图像的颜色,个人认为可以提供一些受击反馈
可以通过改变图像的颜色实现这一效果,有一个小坑是代码中color(r, g, b, a)的值是当前值与最大值的比例,也就是最大为1,而不是255
2、相机震动
学习链接
为相机编写一个协程,当攻击到敌人或角色受到伤害时调用包装协程的函数
对于相机,可以改变的可以不只有位置这一个维度的信息,同时可以适当给相机一定的角度和大小的改变
对于2D游戏的相机,改变z轴并不会引起视野大小的改变,可以改变相机的size
// 相机震动
public void CameraShake(Vector2 direction, float strength)
{if(!isShake)StartCoroutine(Shake(direction, strength));
}
IEnumerator Shake(Vector2 direction, float strength)
{isShake = true;Vector3 startPosition = transform.position;float size = GetComponent<Camera>().orthographicSize;Vector3 target;target = new Vector3(direction.x, direction.y, 0);while(strength > 0){transform.position = target * strength + startPosition;GetComponent<Camera>().orthographicSize = size - strength/3;transform.rotation = Quaternion.Euler(0, 0, direction.x*strength);strength -= Time.deltaTime;yield return null;}while(strength < 0){transform.position = target * strength + startPosition;GetComponent<Camera>().orthographicSize = size - strength/3;transform.rotation = Quaternion.Euler(0, 0, direction.x*strength);strength += Time.deltaTime;yield return null;}transform.position = startPosition;isShake = false;
}
3、击退效果
在攻击到敌人时赋予对方和角色一定的击退效果,可以带来更真实的打击体验
4、受击特效
通过绘制或一些其他方式制作一些特效,在敌人受到攻击时显示这个特效
可以想到的方式是敌人受到攻击时在敌人的位置产生一个随机方向的这种特效,在特效动画结束时销毁该对象
Instantiate()
Destroy(gameObject)
可以想象,这种做法将会不断的产生和销毁物体,给电脑带来的压力是比较大的
这里的敌人受击特效在一个场景中可以公共使用,在战斗时同屏的受击特效是有上限的,可以考虑使用对象池来统一管理这个特效,为受击特效创建一个“特效池”,在第一次创建之后并不会销毁而是关闭启用,之后战斗时可以继续复用。
学习链接
5、音效
我所知道的一个音效网站:耳聆网
里面有符合CC协议的音源,大家有类似的网站可以分享一下,对于不会做音效的来说这很重要。
【2D游戏制作笔记】给游戏战斗增加一点打击感相关推荐
- Unity-业余2D游戏制作笔记02-Dialogue System for Unity使用
纯新手,仅用于记录个人学习中遇到的问题. 目录 当前目标: C#的变量数值和LUA代码连接 (一)Dialogue System任务流程里简单的LUA代码修改变量 (二)Lua通过调用C#函数,来修改 ...
- Ruby‘s Adventrue游戏制作笔记(十一)Unity角色攻击——发射子弹
Ruby's Adventrue游戏制作笔记(十一)Unity角色攻击--发射子弹 前言 一.编辑子弹 二.创建脚本 三.修改玩家攻击脚本 四.将子弹拖入玩家脚本 五.让子弹碰撞到该碰撞的东西 六.编 ...
- Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击
Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击 前言 一.给墙体增加一个刚体 二.添加标签以便确认 三.脚本 四.Wall 的脚本 五.攻击动画 系列链接 前言 本文章是我学习S ...
- Ruby‘s Adventrue游戏制作笔记(四)Unity绘制其他元素
Ruby's Adventrue游戏制作笔记(四)Unity绘制其他元素 前言 一.修改地图层级,将Order in Layer 提高到-10 二.创建Prefabs 三.调整人物在其他元素的位置 四 ...
- Ruby‘s Adventrue游戏制作笔记(十六)Unity子弹数量及其UI
Ruby's Adventrue游戏制作笔记(十六)Unity子弹数量及其UI 前言 一.创建新的UI 二.编辑脚本 三.创建获得子弹的道具 系列链接 前言 本文章是我学习Unity官方项目项目所做笔 ...
- Ruby‘s Adventrue游戏制作笔记(十四)Unity播放游戏音效
Ruby's Adventrue游戏制作笔记(十四)Unity播放游戏音效 前言 一.创建背景音乐 二.创建新的脚本 三.在其他需要播放的所有脚本中进行操作 四.给敌人添加音效 五.给玩家添加移动音效 ...
- Ruby‘s Adventrue游戏制作笔记(十二)Unity给角色添加简单的特效
Ruby's Adventrue游戏制作笔记(十二)Unity给角色添加简单的特效 前言 一.把特效物品进行切割 二.创建 particle System 三.创建彩色球 四.再设置一下其他属性 五. ...
- Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断
Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断 前言 一.每次移动判断是否到达终点 二.在移动函数中判断目标位置是否为终点 三.关卡胜利后,进入下一关 四.保留GameMana ...
- Ruby‘s Adventrue游戏制作笔记(十)Unity添加动画
Ruby's Adventrue游戏制作笔记(十)Unity添加动画 前言 一.给食物添加动画 二.给敌人添加动画 三.添加玩家动画 四.设置触发动画的脚本 系列链接 前言 本文章是我学习Unity官 ...
最新文章
- 微信小程序发送模板消息,php发送模板消息
- 东北农业大学农学院程晓非教授荣获植物病毒学国家“优青”资助
- 16年寒假随笔(2)
- 究极日月服务器维护时间,超激斗梦境9月25日终极测试服务器维护公告_超激斗梦境9月25日更新了什么_玩游戏网...
- seo专题之开篇有益
- C++工作笔记-仿大佬“容器”风格
- dj电商-需求分析-商品模块
- linux rdate
- 简短介绍_中秋节的由来故事简短100字 中秋节的起源中秋节的来历介绍
- 2011年12月1日学习内容总结
- EOS钱包开发注意交易消失的情况
- 撤销Excel文件工作表保护的两种方法
- 现代高频开关电源技术与应用随堂练习_详细了解开关电源的电磁干扰分析
- Windows下载最新谷歌浏览器
- centos7快速搭建KMS服务器
- signature=9b2caa13f2468eba05d2d57d9a88606d,【音响聚焦】顶级Hi-End音响发烧器材介绍(功放篇)...
- 大学英语精读第二版(第五册)复习笔记——文章内容摘要
- Java将编辑器内容生成pdf文件下载
- 学术-几何:黑森错觉
- 林轩田机器学习基石Lecture 6: Theory of Generalization
热门文章
- Homework5_ch4 类和对象(3)
- 图论 物联网_物联网工程题目 物联网在医疗领域的应用
- 不懂你打我,超简单的单链表的创建
- HackTheGame
- 米思齐Mixly图形化编程---遥控灯
- 优达twitter 清理_优达资源 | 12个数据可视化工具,人人都能做出超炫图表
- 计算机科学与探索 sci,第一篇SCI论文投稿经历(计算机专业)
- 【转】Lwip 断连,连接几次后不通及偶尔不通的问题.
- 大搜车mysql面试题_【大搜车面试|面试题】-看准网
- Pandas把某一列日期的月份加减 月份前进或后退