文章目录

  • 一、实现效果
  • 二、具体实现
    • 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 随从受伤溅血效果的实现———自制卡牌游戏之旅相关推荐

  1. 2.1 随从图标的创建———自制卡牌游戏之旅

    文章目录 一.实现效果 二.实现过程 1. 参考卡牌的创建 2. 还需要修改的部分 素材来源:影之诗国服大百科 内容简介:本篇主要介绍随从图标的建立 一.实现效果 当玩家将随从卡牌置入战场后,会诞生一 ...

  2. 26_ue4进阶末日生存游戏开发[僵尸添加动画和扣血效果]

    给僵尸npc添加动画和扣血效果 首先新建一个动画文件夹 新建一个动画蓝图 一般只要是不做汽车啊等模型,我们一般选Animinstance 因为僵尸是女英雄,所以我们选择女英雄的动画 重命名Zombie ...

  3. Unity 伤害飘血效果

    Unity 伤害飘血效果 前言 一.效果演示 二.相关代码 前言 一个对于战斗中飘字飘血的功能,比较简单. 一.效果演示 字的颜色没调整好,所以有点不好看. 二.相关代码 根据自定义曲线控制飘字效果 ...

  4. 效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码 微信小程序开源了

    ⭐零.教程概述 效果最接近<羊了个羊>(卡牌堆叠游戏)的开源代码,有数据库和关卡. 我写的程序是指 卡牌堆叠游戏 ,效果与羊了个羊一致.本教程有已有两个版本. 本来是想着Fork多一点的时 ...

  5. cocos2dx卡牌翻转效果

    刚学cocos2dx,想要实现卡牌翻转的效果,如下: google之后知道是使用CCOrbitCamera. 使用这条语句(CCOrbitCamera *camera1=CCOrbitCamera:: ...

  6. 效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码

    ⭐零.教程概述 效果最接近<羊了个羊>(卡牌堆叠游戏)的开源代码,有数据库和关卡. 我写的程序是指 卡牌堆叠游戏 ,效果与羊了个羊一致.本教程有两个版本 PHP 使用 PHP + H5 + ...

  7. Unity中游戏卡牌滚动效果,EnhanceScrollview(适用于NGUI,UGUI)

    最近项目中的活动面板要做来回滚动卡牌预览效果,感觉自己来写的话,也能写,但是可能会比较耗时,看到Github上有开源的项目,于是就借用了,Github的资源地址是:https://github.com ...

  8. 【游戏客户端】实现卡牌翻转效果

    [游戏客户端]实现卡牌翻转效果       之前的博客中,我和大家分享了如何做: 商业化的充值活动 :[商业化充值活动博客] 抽卡系统:[抽奖,抽卡系统博客] 装备系统:[装备系统博客] 红点系统:[ ...

  9. ugui unity 图片缩放循环_Unity3d UGUI缩放循环拖动展示卡牌效果

    需求:游戏中展示卡牌这种效果也是蛮酷炫并且使用的一种常见效果,下面我们就来实现以下这个效果是如何实现. 思考:第一看看到这个效果,我们首先会想到UGUI里面的ScrollRect,当然也可以用Scro ...

最新文章

  1. pytorch gans
  2. python收取wss数据_Python金融应用之提取交易日+合并截面数据
  3. 485串口光纤转换器产品介绍
  4. ping tracert over TCP
  5. pb预览状态下的pagecount_QuickLook高效文件预览神器,方便到令你意想不到
  6. node获取图片路径_Deno 正式发布,彻底弄明白和 node 的区别
  7. MyBatis学习笔记(2)-MyBatis入门
  8. Android入门(三)Activity-生命周期与启动模式
  9. 解决Glide 4.8.0 圆角与CenterCrop 的冲突问题
  10. 《关于动态社交网络建模和分析的教程》的读书笔记
  11. mac支持fat32格式吗 mac支持什么格式的移动硬盘
  12. 电脑端/手机端获取京东pt_key和pt_pin的几种方式
  13. 迭代算法与递归算法的概念及区别
  14. Python Numpy.std() - 标准差函数
  15. 华为小艺输入法测试版 1.0.19.103 发布
  16. 基于Hi3516DV300的嵌入式入门演练(下)
  17. linux内核开发(基础)
  18. AI智能改写-文本改写人工智能
  19. 数据分析实际案例之:pandas在餐厅评分数据中的使用
  20. 达索Abaqus 2022新功能介绍(三)

热门文章

  1. 全国各地电台FM.ini汇总
  2. 抠像互动技术使人物与各种景物叠加,形成神奇的艺术效果
  3. 数学与计算机学院校友会,忆青春成长路 话数计奋斗情——数学与计算机学院校友会...
  4. pix2pixhd_基于pix2pixHD的行人图像生成
  5. 《联盟》读书笔记(三):如何协调员工与公司的目标和价值观
  6. 计算机专业需要物理力学,读经典物理学和量子力学所想到的计算机哲学
  7. SQL2008使用with求余额表,流水账方式
  8. 字典和列表的删除问题, 深浅拷贝
  9. 移动直播技术秒开优化经验
  10. 06 java GUI 网络编程:图形界面聊天室