Danro/Assets/Scripts/FX/MvpVFXSpawnSettings.cs
Danil Iarosh 53afa5498e
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
Fix player bouncing off corners and align collider
- Исправлено поведение игрока при падении с высоты и разворотах (устранен сильный отскок от углов)
- Центрирован PolygonCollider2D по оси X на префабе character_defeat_4.prefab (m_Offset.x установлен в 0)
- Упрощена форма PolygonCollider2D до симметричного выпуклого шестиугольника
- Сохранен бэкап старого префаба игрока в Player_Old.prefab
2026-07-16 15:39:43 +03:00

87 lines
3.4 KiB
C#

using System;
using UnityEngine;
namespace RR.Game2D.FX
{
[Serializable]
public sealed class MvpVFXSpawnSettings
{
[Tooltip("Сколько копий burst-эффекта создать вокруг точки спавна. Используется как простой множитель плотности частиц.")]
[Min(1)]
public int instanceCount = 1;
[Tooltip("Пробовать переопределить Count внутри VFX Graph burst spawn.")]
public bool overrideParticleCount;
[Min(0f)]
public float particleCount = 50f;
[Tooltip("Горизонтальный радиус случайного разброса копий эффекта.")]
[Min(0f)]
public float spreadRadiusX;
[Tooltip("Вертикальный радиус случайного разброса копий эффекта.")]
[Min(0f)]
public float spreadRadiusY;
[Tooltip("Масштаб объекта VFX. Для локальных VFX Graph shape-нод также влияет на область распространения частиц.")]
[Min(0.01f)]
public float scale = 1f;
[Tooltip("Использовать трехмерный масштаб вместо равномерного.")]
public bool useScale3D;
public Vector3 scale3D = Vector3.one;
[Tooltip("Поворот объекта VFX. Если не задан, используется Quaternion.identity.")]
public Quaternion rotation = Quaternion.identity;
[Tooltip("Масштабировать весь spawned VFX по кривой в течение времени жизни эффекта.")]
public bool overrideSizeOverLife;
public AnimationCurve sizeOverLife = CreateDefaultSizeOverLife();
[Tooltip("Пробовать переопределить цвет эффекта через VFX/renderer параметры.")]
public bool overrideColor;
[ColorUsage(true, true)]
public Color color = Color.white;
[Tooltip("Пробовать переопределить градиент блока Multiply Color Over Life.")]
public bool overrideColorOverLife;
public Gradient colorOverLife = CreateDefaultColorOverLife();
[Tooltip("Пробовать переопределить текстуру частиц через VFX/renderer параметры.")]
public bool overrideTexture;
public Texture2D texture;
private static Gradient CreateDefaultColorOverLife()
{
Gradient gradient = new Gradient();
gradient.SetKeys(
new[]
{
new GradientColorKey(new Color(1f, 0.85f, 0.35f), 0f),
new GradientColorKey(Color.white, 1f)
},
new[]
{
new GradientAlphaKey(1f, 0f),
new GradientAlphaKey(1f, 0.8f),
new GradientAlphaKey(0f, 1f)
});
return gradient;
}
private static AnimationCurve CreateDefaultSizeOverLife()
{
return new AnimationCurve(
new Keyframe(0f, 0f, 6.6156807f, 6.6156807f),
new Keyframe(0.1f, 1.5f, 0.06686528f, 0.06686528f),
new Keyframe(1f, 0f, -1.6666667f, -1.6666667f));
}
}
}