Unity中实现2D残影效果
发布日期:2021-06-30 19:57:13
浏览次数:4
分类:技术文章
本文共 2152 字,大约阅读时间需要 7 分钟。
一:效果演示
二:完整代码
using UnityEngine;using System.Collections.Generic;public class GhostEffect : MonoBehaviour{ [Header("是否开启残影效果")] public bool openGhoseEffect; [Header("是否开启褪色消失")] public bool openFade; [Header("显示残影的持续时间")] public float durationTime; [Header("生成残影与残影之间的时间间隔")] public float spawnTimeval; private float spawnTimer;//生成残影的时间计时器 [Header("残影颜色")] public Color ghostColor; [Header("残影层级")] public int ghostSortingOrder; private SpriteRenderer sr;//SpriteRenderer private ListghostList = new List ();//残影列表 private void Awake() { sr = GetComponent (); } private void Update() { if (openGhoseEffect == false) { return; } DrawGhost(); Fade(); } /// /// 绘制残影 /// private void DrawGhost() { if (spawnTimer >= spawnTimeval) { spawnTimer = 0; GameObject _ghost = new GameObject(); ghostList.Add(_ghost); _ghost.name = "ghost"; _ghost.AddComponent(); _ghost.transform.position = transform.position; _ghost.transform.localScale = transform.localScale; SpriteRenderer _sr = _ghost.GetComponent (); _sr.sprite = sr.sprite; _sr.sortingOrder = ghostSortingOrder; _sr.color = ghostColor; if (openFade == false) { Destroy(_ghost, durationTime); } } else { spawnTimer += Time.deltaTime; } } /// /// 褪色操作 /// private void Fade() { if (openFade == false) { return; } for (int i = 0; i < ghostList.Count; i++) { SpriteRenderer ghostSR = ghostList[i].GetComponent(); if (ghostSR.color.a <= 0) { GameObject tempGhost = ghostList[i]; ghostList.Remove(tempGhost); Destroy(tempGhost); } else { float fadePerSecond = (ghostColor.a / durationTime); Color tempColor = ghostSR.color; tempColor.a -= fadePerSecond * Time.deltaTime; ghostSR.color = tempColor; } } }}
转载地址:https://liuhaowen.blog.csdn.net/article/details/104226143 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月24日 12时10分49秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
牛客国庆集训派对Day4——G 区间权值(找规律,双重前缀和)
2019-04-30
牛客国庆集训派对Day5——L 数论之神(找规律/数论)
2019-04-30
CodeForces - 629B Far Relative’s Problem(模拟)
2019-04-30
CodeForces - 1059B Forgery (思维)
2021-07-03
CodeForces - 456C Boredom (dp)
2021-07-03
CodeForces - 960B Minimize the error (思维,贪心)
2021-07-03
CodeForces - 97B Superset (思维/分治/构造)
2019-04-30
CodeForces - 675A Infinite Sequence(简单数论 细节)
2019-04-30
CodeForces - 1042B Vitamins (思维)
2019-04-30
ACM 2013 长沙区域赛 Alice's Print Service (二分 思维)
2019-04-30
ACM 2013 长沙区域赛 Collision (几何)
2019-04-30
CodeForces - 1064A Make a triangle! (简单模拟)
2019-04-30
51Nod - 1183 编辑距离 (dp)
2019-04-30
ACM 2014 鞍山区域赛 E - Hatsune Miku (dp)
2019-04-30
反向传播&梯度下降 的直观理解程序(numpy)
2019-04-30
CodeForces - 931B World Cup (思维 模拟)
2019-04-30