做不出来

This commit is contained in:
SoulliesOfficial
2026-06-30 01:48:58 -04:00
parent 9a9e48f8a5
commit ddd387ef35
132 changed files with 8945 additions and 2943 deletions

View File

@@ -0,0 +1,57 @@
using UnityEngine;
namespace Cielonos.MainGame.Effects
{
/// <summary>
/// 单个残影个体生命周期与渐隐控制器。
/// </summary>
public class AfterImageItem : MonoBehaviour
{
private MeshRenderer[] renderers;
private MaterialPropertyBlock propBlock;
private float fadeSpeed;
private float currentFade = 1f;
public void Initialize(MeshFilter[] filters, MeshRenderer[] renderers, Material afterImageMat, float duration)
{
this.renderers = renderers;
this.fadeSpeed = 1f / duration;
this.propBlock = new MaterialPropertyBlock();
foreach (var renderer in renderers)
{
if (renderer != null)
{
renderer.sharedMaterial = afterImageMat;
}
}
}
private void Update()
{
currentFade -= Time.deltaTime * fadeSpeed;
if (currentFade <= 0f)
{
// 必须手动销毁运行时烘焙出的 Mesh 资源,防止显存泄漏 (GC 不会自动回收 BakeMesh 产生的网格)
foreach (var filter in GetComponentsInChildren<MeshFilter>())
{
if (filter != null && filter.sharedMesh != null)
{
Destroy(filter.sharedMesh);
}
}
Destroy(gameObject);
return;
}
propBlock.SetFloat("_Fade", currentFade);
foreach (var renderer in renderers)
{
if (renderer != null)
{
renderer.SetPropertyBlock(propBlock);
}
}
}
}
}