Exemplo n.º 1
0
        /// <inheritdoc />
        public override void Initialize(LayoutElementsContainer layout)
        {
            base.Initialize(layout);

            _isValid = IsValid;
            if (!_isValid)
            {
                return;
            }

            // Show all effect parameters grouped by the emitter track name
            var effect = (ParticleEffect)Values[0];
            var groups = layout.Group("Parameters");

            groups.Panel.Open(false);
            var parameters       = effect.Parameters;
            var parametersGroups = parameters.GroupBy(x => x.EmitterIndex);

            foreach (var parametersGroup in parametersGroups)
            {
                var trackName = parametersGroup.First().TrackName;
                var group     = groups.Group(trackName);
                group.Panel.Open(false);

                var data = SurfaceUtils.InitGraphParameters(parametersGroup);
                SurfaceUtils.DisplayGraphParameters(group, data,
                                                    (instance, parameter, tag) => ((ParticleEffect)instance).GetParameterValue(trackName, parameter.Name),
                                                    (instance, value, parameter, tag) => ((ParticleEffect)instance).SetParameterValue(trackName, parameter.Name, value),
                                                    Values,
                                                    (instance, parameter, tag) => ((ParticleEffectParameter)tag).DefaultValue);
            }
        }
                public override void Initialize(LayoutElementsContainer layout)
                {
                    var window     = (ParticleEmitterWindow)Values[0];
                    var parameters = window.Preview.PreviewActor.Parameters;
                    var data       = SurfaceUtils.InitGraphParameters(parameters);

                    SurfaceUtils.DisplayGraphParameters(layout, data,
                                                        (instance, parameter, tag) => ((ParticleEmitterWindow)instance).Preview.PreviewActor.GetParameterValue(string.Empty, parameter.Name),
                                                        (instance, value, parameter, tag) => ((ParticleEmitterWindow)instance).Preview.PreviewActor.SetParameterValue(string.Empty, parameter.Name, value),
                                                        Values);
                }
Exemplo n.º 3
0
        /// <inheritdoc />
        public override void Initialize(LayoutElementsContainer layout)
        {
            base.Initialize(layout);

            // Show instanced parameters to view/edit at runtime
            if (Values.IsSingleObject && Editor.Instance.StateMachine.IsPlayMode)
            {
                var group = layout.Group("Parameters");
                group.Panel.Open(false);
                group.Panel.IndexInParent -= 2;

                var animatedModel = (AnimatedModel)Values[0];
                var parameters    = animatedModel.Parameters;
                var data          = SurfaceUtils.InitGraphParameters(parameters);
                SurfaceUtils.DisplayGraphParameters(group, data,
                                                    (instance, parameter, tag) => ((AnimatedModel)instance).GetParameterValue(parameter.Identifier),
                                                    (instance, value, parameter, tag) => ((AnimatedModel)instance).SetParameterValue(parameter.Identifier, value),
                                                    Values);
            }
        }