Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
- Исправлено поведение игрока при падении с высоты и разворотах (устранен сильный отскок от углов) - Центрирован PolygonCollider2D по оси X на префабе character_defeat_4.prefab (m_Offset.x установлен в 0) - Упрощена форма PolygonCollider2D до симметричного выпуклого шестиугольника - Сохранен бэкап старого префаба игрока в Player_Old.prefab
87 lines
3.4 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|