unity 3分钟 制作粒子爆炸效果 可以用在三消消除等
2023-12-16 15:12:19
思路就是:
有一个对象池,管理各种特效。
当需要播放特效时,触发如下代码:
blocker为粒子生成的位置
var particles = gamePools.iceParticlesPool.GetObject();
if (particles != null)
{
particles.transform.position = blocker.transform.position;
particles.GetComponent<TileParticles>().fragmentParticles.Play();
}
Prefab有两个脚本:
1. AutoKillPooled(用途是到了时间就自杀)
public class AutoKillPooled : MonoBehaviour
{
public float time = 2.0f;
private PooledObject pooledObject;
private float accTime;
/// <summary>
/// Unity's OnEnable method.
/// </summary>
private void OnEnable()
{
accTime = 0.0f;
}
/// <summary>
/// Unity's Start method.
/// </summary>
private void Start()
{
pooledObject = GetComponent<PooledObject>();
}
/// <summary>
/// Unity's Update method.
/// </summary>
private void Update()
{
accTime += Time.deltaTime;
if (accTime >= time)
{
pooledObject.pool.ReturnObject(gameObject);
}
}
}
2. TileParticles(播放粒子)
TileParticles的脚本附在这个prefab上面,脚本内容如下:
/// <summary>
/// This class identifies the particles emitted when a tile entity is destroyed.
/// </summary>
public class TileParticles : MonoBehaviour
{
public ParticleSystem fragmentParticles;
/// <summary>
/// Unity's Awake method.
/// </summary>
private void Awake()
{
Assert.IsNotNull(fragmentParticles);
}
}
Fragement Particles为该prefab的子物体,上面有particles system组件。
因为particles system配置较复杂:这里直接上传prefab了
prefab下载地址
文章来源:https://blog.csdn.net/killian0213/article/details/134925328
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!