Add some improvements to particles editing

#1395
This commit is contained in:
Wojtek Figat
2023-09-27 13:04:44 +02:00
parent 523a14af56
commit b00156f519
3 changed files with 16 additions and 6 deletions

View File

@@ -25,9 +25,20 @@ namespace FlaxEditor.CustomEditors.Dedicated
get
{
// All selected particle effects use the same system
var effect = (ParticleEffect)Values[0];
var system = effect.ParticleSystem;
return system != null && Values.TrueForAll(x => (x as ParticleEffect)?.ParticleSystem == system);
var effect = Values[0] as ParticleEffect;
var system = effect ? effect.ParticleSystem : null;
if (system && Values.TrueForAll(x => x is ParticleEffect fx && fx && fx.ParticleSystem == system))
{
// All parameters can be accessed
var parameters = effect.Parameters;
foreach (var parameter in parameters)
{
if (!parameter)
return false;
}
return true;
}
return false;
}
}

View File

@@ -402,7 +402,7 @@ SceneRenderTask* ParticleEffect::GetRenderTask() const
#if USE_EDITOR
Array<ParticleEffect::ParameterOverride> ParticleEffect::GetParametersOverrides()
Array<ParticleEffect::ParameterOverride>& ParticleEffect::GetParametersOverrides()
{
CacheModifiedParameters();
return _parametersOverrides;
@@ -461,7 +461,6 @@ void ParticleEffect::CacheModifiedParameters()
{
if (_parameters.IsEmpty())
return;
_parametersOverrides.Clear();
auto& parameters = GetParameters();
for (auto& param : parameters)

View File

@@ -382,7 +382,7 @@ public:
#if USE_EDITOR
protected:
// Exposed parameters overrides for Editor Undo.
API_PROPERTY(Attributes="HideInEditor, Serialize") Array<ParticleEffect::ParameterOverride> GetParametersOverrides();
API_PROPERTY(Attributes="HideInEditor, Serialize") Array<ParticleEffect::ParameterOverride>& GetParametersOverrides();
API_PROPERTY() void SetParametersOverrides(const Array<ParticleEffect::ParameterOverride>& value);
#endif