2.5 随从受伤溅血效果的实现———自制卡牌游戏之旅
文章目录
- 一、实现效果
- 二、具体实现
- 1. 对象创建
- 2. 编写代码
- DamageEffect.cs
- ① 从预制体生成
- ② 渐隐效果协程
- ③ 差分的特效图片
- DamageEffectTest.cs
- 三、完整代码
内容简介:本篇主要介绍受伤溅血效果
一、实现效果
当随从或玩家收到伤害时,会产生一个标有伤害数值的溅血特效出现。
并且显示之后会有一个渐隐退场的效果。
二、具体实现
1. 对象创建
对象主要分为两部分:溅血特效图片和数值
Splash:特效图片
Text:数值
2. 编写代码
分析
DamageEffect.cs
① 从预制体生成
public static void CreateDamageEffect(Vector3 position, int amount){// 生成DamageEffect预制体GameObject newDamageEffect = new GameObject();// TODO GameObject newDamageEffect = GameObject.Instantiate(GlobalSettings.Instance.DamageEffectPrefab, position, Quaternion.identity) as GameObject;newDamageEffect = GameObject.Instantiate(DamageEffectTest.Instance.DamagePrefab, position, Quaternion.identity) as GameObject;// 获取组件DamageEffect de = newDamageEffect.GetComponent<DamageEffect>();// 更改文字de.AmountText.text = "-"+amount.ToString();// 开始协程de.StartCoroutine(de.ShowDamageEffect());}
② 渐隐效果协程
通过更改alpha值,来达到渐隐效果
// 控制渐隐效果的协程private IEnumerator ShowDamageEffect(){// 不透明cg.alpha = 1f;// 等待一秒钟yield return new WaitForSeconds(1f);// 更改alpha值while (cg.alpha > 0){cg.alpha -= 0.05f;yield return new WaitForSeconds(0.05f);}// 销毁该效果Destroy(this.gameObject);}
③ 差分的特效图片
为了增加视觉效果,可以让每次效果的特效图片都不一样。
void Awake(){// 选择一个随机伤害图片DamageImage.sprite = Splashes[Random.Range(0, Splashes.Length)]; }
Splash为存放差分图片的数组,每次生成预制体后从数组中随机挑选生成。
DamageEffectTest.cs
用来临时测试效果
using UnityEngine;
using System.Collections;public class DamageEffectTest : MonoBehaviour {public GameObject DamagePrefab;public static DamageEffectTest Instance;void Awake(){Instance = this;}void Update(){if (Input.GetKeyDown(KeyCode.A))// 调用静态方法DamageEffect.CreateDamageEffect(transform.position, Random.Range(1, 7));}
}
三、完整代码
DamageEffect.cs
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using DG.Tweening;public class DamageEffect : MonoBehaviour {// 不同溅血效果的数组public Sprite[] Splashes;public Image DamageImage;// 用于调整alpha值,来实现渐隐效果public CanvasGroup cg;// 显示伤害数字,比如: "-2"public Text AmountText;void Awake(){// 选择一个随机伤害图片DamageImage.sprite = Splashes[Random.Range(0, Splashes.Length)]; }// 控制渐隐效果的协程private IEnumerator ShowDamageEffect(){// 不透明cg.alpha = 1f;// 等待一秒钟yield return new WaitForSeconds(1f);// 更改alpha值while (cg.alpha > 0){cg.alpha -= 0.05f;yield return new WaitForSeconds(0.05f);}// 销毁该效果Destroy(this.gameObject);}// 静态方法public static void CreateDamageEffect(Vector3 position, int amount){// 生成DamageEffect预制体GameObject newDamageEffect = new GameObject();// TODO GameObject newDamageEffect = GameObject.Instantiate(GlobalSettings.Instance.DamageEffectPrefab, position, Quaternion.identity) as GameObject;newDamageEffect = GameObject.Instantiate(DamageEffectTest.Instance.DamagePrefab, position, Quaternion.identity) as GameObject;// 获取组件DamageEffect de = newDamageEffect.GetComponent<DamageEffect>();// 更改文字de.AmountText.text = "-"+amount.ToString();// 开始协程de.StartCoroutine(de.ShowDamageEffect());}
}
2.5 随从受伤溅血效果的实现———自制卡牌游戏之旅相关推荐
- 2.1 随从图标的创建———自制卡牌游戏之旅
文章目录 一.实现效果 二.实现过程 1. 参考卡牌的创建 2. 还需要修改的部分 素材来源:影之诗国服大百科 内容简介:本篇主要介绍随从图标的建立 一.实现效果 当玩家将随从卡牌置入战场后,会诞生一 ...
- 26_ue4进阶末日生存游戏开发[僵尸添加动画和扣血效果]
给僵尸npc添加动画和扣血效果 首先新建一个动画文件夹 新建一个动画蓝图 一般只要是不做汽车啊等模型,我们一般选Animinstance 因为僵尸是女英雄,所以我们选择女英雄的动画 重命名Zombie ...
- Unity 伤害飘血效果
Unity 伤害飘血效果 前言 一.效果演示 二.相关代码 前言 一个对于战斗中飘字飘血的功能,比较简单. 一.效果演示 字的颜色没调整好,所以有点不好看. 二.相关代码 根据自定义曲线控制飘字效果 ...
- 效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码 微信小程序开源了
⭐零.教程概述 效果最接近<羊了个羊>(卡牌堆叠游戏)的开源代码,有数据库和关卡. 我写的程序是指 卡牌堆叠游戏 ,效果与羊了个羊一致.本教程有已有两个版本. 本来是想着Fork多一点的时 ...
- cocos2dx卡牌翻转效果
刚学cocos2dx,想要实现卡牌翻转的效果,如下: google之后知道是使用CCOrbitCamera. 使用这条语句(CCOrbitCamera *camera1=CCOrbitCamera:: ...
- 效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码
⭐零.教程概述 效果最接近<羊了个羊>(卡牌堆叠游戏)的开源代码,有数据库和关卡. 我写的程序是指 卡牌堆叠游戏 ,效果与羊了个羊一致.本教程有两个版本 PHP 使用 PHP + H5 + ...
- Unity中游戏卡牌滚动效果,EnhanceScrollview(适用于NGUI,UGUI)
最近项目中的活动面板要做来回滚动卡牌预览效果,感觉自己来写的话,也能写,但是可能会比较耗时,看到Github上有开源的项目,于是就借用了,Github的资源地址是:https://github.com ...
- 【游戏客户端】实现卡牌翻转效果
[游戏客户端]实现卡牌翻转效果 之前的博客中,我和大家分享了如何做: 商业化的充值活动 :[商业化充值活动博客] 抽卡系统:[抽奖,抽卡系统博客] 装备系统:[装备系统博客] 红点系统:[ ...
- ugui unity 图片缩放循环_Unity3d UGUI缩放循环拖动展示卡牌效果
需求:游戏中展示卡牌这种效果也是蛮酷炫并且使用的一种常见效果,下面我们就来实现以下这个效果是如何实现. 思考:第一看看到这个效果,我们首先会想到UGUI里面的ScrollRect,当然也可以用Scro ...
最新文章
- pytorch gans
- python收取wss数据_Python金融应用之提取交易日+合并截面数据
- 485串口光纤转换器产品介绍
- ping tracert over TCP
- pb预览状态下的pagecount_QuickLook高效文件预览神器,方便到令你意想不到
- node获取图片路径_Deno 正式发布,彻底弄明白和 node 的区别
- MyBatis学习笔记(2)-MyBatis入门
- Android入门(三)Activity-生命周期与启动模式
- 解决Glide 4.8.0 圆角与CenterCrop 的冲突问题
- 《关于动态社交网络建模和分析的教程》的读书笔记
- mac支持fat32格式吗 mac支持什么格式的移动硬盘
- 电脑端/手机端获取京东pt_key和pt_pin的几种方式
- 迭代算法与递归算法的概念及区别
- Python Numpy.std() - 标准差函数
- 华为小艺输入法测试版 1.0.19.103 发布
- 基于Hi3516DV300的嵌入式入门演练(下)
- linux内核开发(基础)
- AI智能改写-文本改写人工智能
- 数据分析实际案例之:pandas在餐厅评分数据中的使用
- 达索Abaqus 2022新功能介绍(三)
热门文章
- 全国各地电台FM.ini汇总
- 抠像互动技术使人物与各种景物叠加,形成神奇的艺术效果
- 数学与计算机学院校友会,忆青春成长路 话数计奋斗情——数学与计算机学院校友会...
- pix2pixhd_基于pix2pixHD的行人图像生成
- 《联盟》读书笔记(三):如何协调员工与公司的目标和价值观
- 计算机专业需要物理力学,读经典物理学和量子力学所想到的计算机哲学
- SQL2008使用with求余额表,流水账方式
- 字典和列表的删除问题, 深浅拷贝
- 移动直播技术秒开优化经验
- 06 java GUI 网络编程:图形界面聊天室