Esempio n. 1
0
        public void Apply(ParticleSystem.MinMaxCurve curve)
        {
            MinMaxMode = curve.mode;
            Scalar     = curve.curveScalar;
            MinMaxMode = curve.mode;
            Scalar     = curve.curveScalar;
            switch (curve.mode)
            {
            case ParticleSystemCurveMode.Constant:
                Scalar = curve.constantMax;
                MaxCurve.Apply(new AnimationCurve(new[] { new Keyframe(0, 1) }));
                break;

            case ParticleSystemCurveMode.Curve:
                MaxCurve.Apply(curve.curveMax);
                break;

            case ParticleSystemCurveMode.TwoCurves:
                MaxCurve.Apply(curve.curveMax);
                MinCurve.Apply(curve.curveMin);
                break;

            case ParticleSystemCurveMode.TwoConstants:
                Scalar = curve.constantMax;
                MinCurve.Apply(new AnimationCurve(new[] { new Keyframe(0, curve.constantMin / Scalar) }));
                MaxCurve.Apply(new AnimationCurve(new[] { new Keyframe(0, 1) }));
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Esempio n. 2
0
        public YAMLNode ExportYAML(IExportContainer container)
        {
#warning TODO: values acording to read version (current 2017.3.0f3)
            YAMLMappingNode node = new YAMLMappingNode();
            node.AddSerializedVersion(GetSerializedVersion(container.Version));
            node.Add("minMaxState", (ushort)MinMaxState);
            node.Add("scalar", GetExportScalar(container.Version));
            node.Add("minScalar", GetExportMinScalar(container.Version));
            node.Add("maxCurve", MaxCurve.ExportYAML(container));
            node.Add("minCurve", MinCurve.ExportYAML(container));
            return(node);
        }
Esempio n. 3
0
        public YAMLNode ExportYAML(IExportContainer container)
        {
            YAMLMappingNode node = new YAMLMappingNode();

            node.AddSerializedVersion(GetSerializedVersion(container.Version));
            node.Add("minMaxState", (ushort)MinMaxState);
            node.Add("scalar", GetExportScalar(container.Version));
            node.Add("minScalar", GetExportMinScalar(container.Version));
            node.Add("maxCurve", MaxCurve.ExportYAML(container));
            node.Add("minCurve", MinCurve.ExportYAML(container));
            return(node);
        }
Esempio n. 4
0
        public YAMLNode ExportYAML(IExportContainer container)
        {
            YAMLMappingNode node = new YAMLMappingNode();

            node.AddSerializedVersion(ToSerializedVersion(container.ExportVersion));
            node.Add(MinMaxStateName, (ushort)MinMaxState);
            node.Add(ScalarName, GetExportScalar(container.Version));
            node.Add(MinScalarName, GetExportMinScalar(container.Version));
            node.Add(MaxCurveName, MaxCurve.ExportYAML(container));
            node.Add(MinCurveName, MinCurve.ExportYAML(container));
            return(node);
        }
Esempio n. 5
0
        public void Read(AssetReader reader)
        {
            if (IsMinMaxStateFirst(reader.Version))
            {
                MinMaxState = (ParticleSystemCurveMode)reader.ReadUInt16();
                reader.AlignStream(AlignType.Align4);
            }

            Scalar    = reader.ReadSingle();
            MinScalar = IsReadMinScalar(reader.Version) ? reader.ReadSingle() : Scalar;
            MaxCurve.Read(reader);
            MinCurve.Read(reader);

            if (!IsMinMaxStateFirst(reader.Version))
            {
                MinMaxState = (ParticleSystemCurveMode)reader.ReadUInt16();
                reader.AlignStream(AlignType.Align4);
            }
        }
Esempio n. 6
0
        public void Read(AssetStream stream)
        {
            if (IsMinMaxStateFirst(stream.Version))
            {
                MinMaxState = (ParticleSystemCurveMode)stream.ReadUInt16();
                stream.AlignStream(AlignType.Align4);
            }

            Scalar = stream.ReadSingle();
            if (IsReadMinScalar(stream.Version))
            {
                MinScalar = stream.ReadSingle();
            }
            MaxCurve.Read(stream);
            MinCurve.Read(stream);

            if (!IsMinMaxStateFirst(stream.Version))
            {
                MinMaxState = (ParticleSystemCurveMode)stream.ReadUInt16();
                stream.AlignStream(AlignType.Align4);
            }
        }