【unity2D】基于对象池的残影拖尾效果

目标

当美术素材较少时,我们可以基于对象池来实现残影拖尾效果,增强游戏的画面表现。

基本思路

步骤1. 创建一个2DSprite,编辑该对象的Image,使其为我们所需要的拖尾图片。

步骤2. 写一个方法,使该对象Image-Color中的alpha通道值在指定时间内逐渐变小,即图片逐渐变透明。

步骤3. 把该对象作为prefab,放入对象池。需要时,访问对象池。

相关代码

以下代码挂载在该对象的prefab上

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Trail : MonoBehaviour { private Transform tailTrans; private SpriteRenderer tailSprite; private SpriteRenderer thisSprite; private Color tailColor; private float showTimePoint;//时间点 public float showTime = 0.3f;//时间段 public float alphaMax = 0.5f; public float alphaMin = 0f; private float timer = 0f; private void OnEnable() { showTimePoint = Time.time; timer = 0f; //复刻player的动作,位置,转动,大小 tailTrans = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>(); tailSprite = GameObject.FindGameObjectWithTag("Player").GetComponent<SpriteRenderer>(); thisSprite = GetComponent<SpriteRenderer>(); thisSprite.sprite = tailSprite.sprite; transform.position = tailTrans.position; transform.rotation = tailTrans.rotation; transform.localScale = tailTrans.localScale; } private void FixedUpdate() { Timer(showTime); thisSprite.color = new Color(1 , 1 , 1 , Mathf.Lerp(alphaMax , alphaMin , timer)); //时间到了,放回池子 if(Time.time >= showTimePoint + showTime) { gameObject.transform.parent.gameObject.GetComponent<DictionaryTest>().BackToPool(this.gameObject); } } private void Timer(float showTime) { float _mult = 1 / showTime; if((timer += Time.deltaTime * _mult) <= 1f) { timer += Time.deltaTime * _mult; } else { timer = 1f; } } }

最终效果

image

补充

另外,只需调整预设图片,就能实现大部分简单的拖尾效果。


__EOF__

本文作者OtusScops
本文链接https://www.cnblogs.com/OtusScops/p/14810155.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   AshScops  阅读(817)  评论(3编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示