feat(fix-system): 优化损坏模块火花表现
This commit is contained in:
@@ -7,15 +7,15 @@ namespace AibisDream.FixSystem
|
||||
{
|
||||
/// <summary>
|
||||
/// 模块运行状态的纯表现层:Module Pic 始终显示,文字负责常亮/闪烁/熄灭,
|
||||
/// 火花依据 Module Pic 的世界包围盒生成在外围并渲染在本体下层。
|
||||
/// 火花依据 Module Pic 的世界包围盒收束在底边,并渲染在本体下层。
|
||||
/// </summary>
|
||||
public class ModuleConditionVisual : MonoBehaviour
|
||||
{
|
||||
private static readonly Vector2[] SparkDirections =
|
||||
{
|
||||
new(-1f, -1f), new(0f, -1f), new(1f, -1f),
|
||||
new(-1f, 0f), new(1f, 0f),
|
||||
new(-1f, 1f), new(0f, 1f), new(1f, 1f)
|
||||
new(-0.5f, -0.86f),
|
||||
new(0f, -0.86f),
|
||||
new(0.5f, -0.86f)
|
||||
};
|
||||
|
||||
[Header("模块引用")]
|
||||
@@ -28,15 +28,16 @@ namespace AibisDream.FixSystem
|
||||
|
||||
[Header("损坏火花")]
|
||||
[SerializeField] private VisualEffectAsset sparkAsset;
|
||||
[SerializeField, Min(0.01f)] private float sparkMinInterval = 0.35f;
|
||||
[SerializeField, Min(0.01f)] private float sparkMaxInterval = 1.2f;
|
||||
[SerializeField, Min(0f)] private float sparkBoundsPadding = 0.06f;
|
||||
[SerializeField] private Vector2 sparkBoundsScale = Vector2.one;
|
||||
[SerializeField, Min(0.01f)] private float sparkMinInterval = 0.3f;
|
||||
[SerializeField, Min(0.01f)] private float sparkMaxInterval = 1f;
|
||||
[SerializeField, Min(0f)] private float sparkBoundsPadding = 0.01f;
|
||||
[SerializeField] private Vector2 sparkBoundsScale = new(0.9f, 0.92f);
|
||||
[SerializeField] private Vector2 sparkCenterOffset = Vector2.zero;
|
||||
[SerializeField] private Vector2 sparkBurstCount = new(2f, 5f);
|
||||
[SerializeField] private Vector2 sparkLifetime = new(0.08f, 0.22f);
|
||||
[SerializeField] private Vector2 sparkSizeFactor = new(0.025f, 0.055f);
|
||||
[SerializeField, Min(0f)] private float sparkVelocityFactor = 1.5f;
|
||||
[SerializeField] private Vector2 sparkBurstCount = new(3f, 6f);
|
||||
[SerializeField] private Vector2 sparkLifetime = new(0.1f, 0.24f);
|
||||
[SerializeField] private Vector2 sparkSizeFactor = new(0.032f, 0.065f);
|
||||
[SerializeField, Min(0.01f)] private float sparkWidth = 0.45f;
|
||||
[SerializeField, Min(0f)] private float sparkVelocityFactor = 0.9f;
|
||||
|
||||
private readonly List<VisualEffect> _sparkEmitters = new();
|
||||
private Coroutine _textFlickerCoroutine;
|
||||
@@ -228,6 +229,8 @@ namespace AibisDream.FixSystem
|
||||
effect.SetVector2("Lifetime Min/Max", sparkLifetime);
|
||||
if (effect.HasVector2("Size Min/Max"))
|
||||
effect.SetVector2("Size Min/Max", sparkSizeFactor * sizeBase);
|
||||
if (effect.HasFloat("Sparkle Width"))
|
||||
effect.SetFloat("Sparkle Width", sparkWidth);
|
||||
if (effect.HasVector3("Initial Velocity_vector"))
|
||||
{
|
||||
var speed = sizeBase * sparkVelocityFactor;
|
||||
|
||||
Reference in New Issue
Block a user