예제 #1
0
        public override object Read <T>(ES3Reader reader)
        {
            var instance = new UnityEngine.ParticleSystem.MainModule();

            ReadInto <T>(reader, instance);
            return(instance);
        }
예제 #2
0
        protected override void Create(EntityObject entity)
        {
            base.Create(entity);

            m_ps = this.GetComponentInChildren <ParticleSystem>();

            UnityEngine.ParticleSystem.MainModule main = m_ps.main;
            main.startLifetimeMultiplier = m_entity.Data.length * 0.033f;

            m_entity.Data.bodyVisible = false;
        }
예제 #3
0
        protected override void Update()
        {
            base.Update();

            if (m_ps != null && m_entity != null)
            {
                if (m_ps.main.startLifetimeMultiplier != m_entity.Data.length * 0.033f)
                {
                    UnityEngine.ParticleSystem.MainModule main = m_ps.main;
                    main.startLifetimeMultiplier = m_entity.Data.length * 0.033f;
                }
            }
        }
예제 #4
0
        static void WriteBackInstance(ILRuntime.Runtime.Enviorment.AppDomain __domain, StackObject *ptr_of_this_method, IList <object> __mStack, ref UnityEngine.ParticleSystem.MainModule instance_of_this_method)
        {
            ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
            switch (ptr_of_this_method->ObjectType)
            {
            case ObjectTypes.Object:
            {
                __mStack[ptr_of_this_method->Value] = instance_of_this_method;
            }
            break;

            case ObjectTypes.FieldReference:
            {
                var ___obj = __mStack[ptr_of_this_method->Value];
                if (___obj is ILTypeInstance)
                {
                    ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = instance_of_this_method;
                }
                else
                {
                    var t = __domain.GetType(___obj.GetType()) as CLRType;
                    t.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, instance_of_this_method);
                }
            }
            break;

            case ObjectTypes.StaticFieldReference:
            {
                var t = __domain.GetType(ptr_of_this_method->Value);
                if (t is ILType)
                {
                    ((ILType)t).StaticInstance[ptr_of_this_method->ValueLow] = instance_of_this_method;
                }
                else
                {
                    ((CLRType)t).SetStaticFieldValue(ptr_of_this_method->ValueLow, instance_of_this_method);
                }
            }
            break;

            case ObjectTypes.ArrayReference:
            {
                var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.ParticleSystem.MainModule[];
                instance_of_arrayReference[ptr_of_this_method->ValueLow] = instance_of_this_method;
            }
            break;
            }
        }
예제 #5
0
        /// <summary>
        /// Write the specified value using the writer.
        /// </summary>
        /// <param name="value">Value.</param>
        /// <param name="writer">Writer.</param>
        public override void Write(object value, ISaveGameWriter writer)
        {
            UnityEngine.ParticleSystem.MainModule mainModule = (UnityEngine.ParticleSystem.MainModule)value;
            writer.WriteProperty("duration", mainModule.duration);
            writer.WriteProperty("loop", mainModule.loop);
            writer.WriteProperty("prewarm", mainModule.prewarm);
            writer.WriteProperty("startDelay", mainModule.startDelay);
            writer.WriteProperty("startDelayMultiplier", mainModule.startDelayMultiplier);
            writer.WriteProperty("startLifetime", mainModule.startLifetime);
            writer.WriteProperty("startLifetimeMultiplier", mainModule.startLifetimeMultiplier);
            writer.WriteProperty("startSpeed", mainModule.startSpeed);
            writer.WriteProperty("startSpeedMultiplier", mainModule.startSpeedMultiplier);
            writer.WriteProperty("startSize3D", mainModule.startSize3D);
            writer.WriteProperty("startSize", mainModule.startSize);
            writer.WriteProperty("startSizeMultiplier", mainModule.startSizeMultiplier);
            writer.WriteProperty("startSizeX", mainModule.startSizeX);
            writer.WriteProperty("startSizeXMultiplier", mainModule.startSizeXMultiplier);
            writer.WriteProperty("startSizeY", mainModule.startSizeY);
            writer.WriteProperty("startSizeYMultiplier", mainModule.startSizeYMultiplier);
            writer.WriteProperty("startSizeZ", mainModule.startSizeZ);
            writer.WriteProperty("startSizeZMultiplier", mainModule.startSizeZMultiplier);
            writer.WriteProperty("startRotation3D", mainModule.startRotation3D);
            writer.WriteProperty("startRotation", mainModule.startRotation);
            writer.WriteProperty("startRotationMultiplier", mainModule.startRotationMultiplier);
            writer.WriteProperty("startRotationX", mainModule.startRotationX);
            writer.WriteProperty("startRotationXMultiplier", mainModule.startRotationXMultiplier);
            writer.WriteProperty("startRotationY", mainModule.startRotationY);
            writer.WriteProperty("startRotationYMultiplier", mainModule.startRotationYMultiplier);
            writer.WriteProperty("startRotationZ", mainModule.startRotationZ);
            writer.WriteProperty("startRotationZMultiplier", mainModule.startRotationZMultiplier);
            //writer.WriteProperty("randomizeRotationDirection", mainModule.flipRotation);
            writer.WriteProperty("startColor", mainModule.startColor);
            writer.WriteProperty("gravityModifier", mainModule.gravityModifier);
            writer.WriteProperty("gravityModifierMultiplier", mainModule.gravityModifierMultiplier);
            writer.WriteProperty("simulationSpace", mainModule.simulationSpace);
            writer.WriteProperty("customSimulationSpace", mainModule.customSimulationSpace);
            writer.WriteProperty("simulationSpeed", mainModule.simulationSpeed);
#if UNITY_2017_1_OR_NEWER
            writer.WriteProperty("useUnscaledTime", mainModule.useUnscaledTime);
#endif
            writer.WriteProperty("scalingMode", mainModule.scalingMode);
            writer.WriteProperty("playOnAwake", mainModule.playOnAwake);
            writer.WriteProperty("maxParticles", mainModule.maxParticles);
#if UNITY_2017_1_OR_NEWER
            writer.WriteProperty("emitterVelocityMode", mainModule.emitterVelocityMode);
#endif
        }
예제 #6
0
 public override object WriteTo(object obj, System.Collections.Generic.Dictionary <long, UnityEngine.Object> objects)
 {
     obj = base.WriteTo(obj, objects);
     if (obj == null)
     {
         return(null);
     }
     UnityEngine.ParticleSystem.MainModule o = (UnityEngine.ParticleSystem.MainModule)obj;
     o.duration                   = duration;
     o.loop                       = loop;
     o.prewarm                    = prewarm;
     o.startDelay                 = Write(o.startDelay, startDelay, objects);
     o.startDelayMultiplier       = startDelayMultiplier;
     o.startLifetime              = Write(o.startLifetime, startLifetime, objects);
     o.startLifetimeMultiplier    = startLifetimeMultiplier;
     o.startSpeed                 = Write(o.startSpeed, startSpeed, objects);
     o.startSpeedMultiplier       = startSpeedMultiplier;
     o.startSize3D                = startSize3D;
     o.startSize                  = Write(o.startSize, startSize, objects);
     o.startSizeMultiplier        = startSizeMultiplier;
     o.startSizeX                 = Write(o.startSizeX, startSizeX, objects);
     o.startSizeXMultiplier       = startSizeXMultiplier;
     o.startSizeY                 = Write(o.startSizeY, startSizeY, objects);
     o.startSizeYMultiplier       = startSizeYMultiplier;
     o.startSizeZ                 = Write(o.startSizeZ, startSizeZ, objects);
     o.startSizeZMultiplier       = startSizeZMultiplier;
     o.startRotation3D            = startRotation3D;
     o.startRotation              = Write(o.startRotation, startRotation, objects);
     o.startRotationMultiplier    = startRotationMultiplier;
     o.startRotationX             = Write(o.startRotationX, startRotationX, objects);
     o.startRotationXMultiplier   = startRotationXMultiplier;
     o.startRotationY             = Write(o.startRotationY, startRotationY, objects);
     o.startRotationYMultiplier   = startRotationYMultiplier;
     o.startRotationZ             = Write(o.startRotationZ, startRotationZ, objects);
     o.startRotationZMultiplier   = startRotationZMultiplier;
     o.randomizeRotationDirection = randomizeRotationDirection;
     o.startColor                 = Write(o.startColor, startColor, objects);
     o.gravityModifier            = Write(o.gravityModifier, gravityModifier, objects);
     o.gravityModifierMultiplier  = gravityModifierMultiplier;
     o.simulationSpace            = (UnityEngine.ParticleSystemSimulationSpace)simulationSpace;
     o.customSimulationSpace      = (UnityEngine.Transform)objects.Get(customSimulationSpace);
     o.simulationSpeed            = simulationSpeed;
     o.scalingMode                = (UnityEngine.ParticleSystemScalingMode)scalingMode;
     o.playOnAwake                = playOnAwake;
     o.maxParticles               = maxParticles;
     return(o);
 }
예제 #7
0
 public override void ReadFrom(object obj)
 {
     base.ReadFrom(obj);
     if (obj == null)
     {
         return;
     }
     UnityEngine.ParticleSystem.MainModule o = (UnityEngine.ParticleSystem.MainModule)obj;
     duration                   = o.duration;
     loop                       = o.loop;
     prewarm                    = o.prewarm;
     startDelay                 = Read(startDelay, o.startDelay);
     startDelayMultiplier       = o.startDelayMultiplier;
     startLifetime              = Read(startLifetime, o.startLifetime);
     startLifetimeMultiplier    = o.startLifetimeMultiplier;
     startSpeed                 = Read(startSpeed, o.startSpeed);
     startSpeedMultiplier       = o.startSpeedMultiplier;
     startSize3D                = o.startSize3D;
     startSize                  = Read(startSize, o.startSize);
     startSizeMultiplier        = o.startSizeMultiplier;
     startSizeX                 = Read(startSizeX, o.startSizeX);
     startSizeXMultiplier       = o.startSizeXMultiplier;
     startSizeY                 = Read(startSizeY, o.startSizeY);
     startSizeYMultiplier       = o.startSizeYMultiplier;
     startSizeZ                 = Read(startSizeZ, o.startSizeZ);
     startSizeZMultiplier       = o.startSizeZMultiplier;
     startRotation3D            = o.startRotation3D;
     startRotation              = Read(startRotation, o.startRotation);
     startRotationMultiplier    = o.startRotationMultiplier;
     startRotationX             = Read(startRotationX, o.startRotationX);
     startRotationXMultiplier   = o.startRotationXMultiplier;
     startRotationY             = Read(startRotationY, o.startRotationY);
     startRotationYMultiplier   = o.startRotationYMultiplier;
     startRotationZ             = Read(startRotationZ, o.startRotationZ);
     startRotationZMultiplier   = o.startRotationZMultiplier;
     randomizeRotationDirection = o.randomizeRotationDirection;
     startColor                 = Read(startColor, o.startColor);
     gravityModifier            = Read(gravityModifier, o.gravityModifier);
     gravityModifierMultiplier  = o.gravityModifierMultiplier;
     simulationSpace            = (uint)o.simulationSpace;
     customSimulationSpace      = o.customSimulationSpace.GetMappedInstanceID();
     simulationSpeed            = o.simulationSpeed;
     scalingMode                = (uint)o.scalingMode;
     playOnAwake                = o.playOnAwake;
     maxParticles               = o.maxParticles;
 }
예제 #8
0
        static StackObject *set_scalingMode_0(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            UnityEngine.ParticleSystemScalingMode @value = (UnityEngine.ParticleSystemScalingMode) typeof(UnityEngine.ParticleSystemScalingMode).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
            UnityEngine.ParticleSystem.MainModule instance_of_this_method = (UnityEngine.ParticleSystem.MainModule) typeof(UnityEngine.ParticleSystem.MainModule).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));

            instance_of_this_method.scalingMode = value;

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);

            __intp.Free(ptr_of_this_method);
            return(__ret);
        }
예제 #9
0
 protected override void GetDependencies(System.Collections.Generic.Dictionary <long, UnityEngine.Object> dependencies, object obj)
 {
     base.GetDependencies(dependencies, obj);
     if (obj == null)
     {
         return;
     }
     UnityEngine.ParticleSystem.MainModule o = (UnityEngine.ParticleSystem.MainModule)obj;
     GetDependencies(startDelay, o.startDelay, dependencies);
     GetDependencies(startLifetime, o.startLifetime, dependencies);
     GetDependencies(startSpeed, o.startSpeed, dependencies);
     GetDependencies(startSize, o.startSize, dependencies);
     GetDependencies(startSizeX, o.startSizeX, dependencies);
     GetDependencies(startSizeY, o.startSizeY, dependencies);
     GetDependencies(startSizeZ, o.startSizeZ, dependencies);
     GetDependencies(startRotation, o.startRotation, dependencies);
     GetDependencies(startRotationX, o.startRotationX, dependencies);
     GetDependencies(startRotationY, o.startRotationY, dependencies);
     GetDependencies(startRotationZ, o.startRotationZ, dependencies);
     GetDependencies(startColor, o.startColor, dependencies);
     GetDependencies(gravityModifier, o.gravityModifier, dependencies);
     AddDependency(o.customSimulationSpace, dependencies);
 }
예제 #10
0
        /// <summary>
        /// Read the data using the reader.
        /// </summary>
        /// <param name="reader">Reader.</param>
        public override object Read(ISaveGameReader reader)
        {
            UnityEngine.ParticleSystem.MainModule mainModule = new UnityEngine.ParticleSystem.MainModule();
            foreach (string property in reader.Properties)
            {
                switch (property)
                {
                case "duration":
                    mainModule.duration = reader.ReadProperty <System.Single>();
                    break;

                case "loop":
                    mainModule.loop = reader.ReadProperty <System.Boolean>();
                    break;

                case "prewarm":
                    mainModule.prewarm = reader.ReadProperty <System.Boolean>();
                    break;

                case "startDelay":
                    mainModule.startDelay = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startDelayMultiplier":
                    mainModule.startDelayMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startLifetime":
                    mainModule.startLifetime = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startLifetimeMultiplier":
                    mainModule.startLifetimeMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startSpeed":
                    mainModule.startSpeed = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startSpeedMultiplier":
                    mainModule.startSpeedMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startSize3D":
                    mainModule.startSize3D = reader.ReadProperty <System.Boolean>();
                    break;

                case "startSize":
                    mainModule.startSize = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startSizeMultiplier":
                    mainModule.startSizeMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startSizeX":
                    mainModule.startSizeX = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startSizeXMultiplier":
                    mainModule.startSizeXMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startSizeY":
                    mainModule.startSizeY = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startSizeYMultiplier":
                    mainModule.startSizeYMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startSizeZ":
                    mainModule.startSizeZ = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startSizeZMultiplier":
                    mainModule.startSizeZMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startRotation3D":
                    mainModule.startRotation3D = reader.ReadProperty <System.Boolean>();
                    break;

                case "startRotation":
                    mainModule.startRotation = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startRotationMultiplier":
                    mainModule.startRotationMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startRotationX":
                    mainModule.startRotationX = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startRotationXMultiplier":
                    mainModule.startRotationXMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startRotationY":
                    mainModule.startRotationY = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startRotationYMultiplier":
                    mainModule.startRotationYMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "startRotationZ":
                    mainModule.startRotationZ = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "startRotationZMultiplier":
                    mainModule.startRotationZMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "randomizeRotationDirection":     // Removed in Unity 2017.4
                    reader.ReadProperty <System.Single>();
                    break;

                case "startColor":
                    mainModule.startColor = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxGradient>();
                    break;

                case "gravityModifier":
                    mainModule.gravityModifier = reader.ReadProperty <UnityEngine.ParticleSystem.MinMaxCurve>();
                    break;

                case "gravityModifierMultiplier":
                    mainModule.gravityModifierMultiplier = reader.ReadProperty <System.Single>();
                    break;

                case "simulationSpace":
                    mainModule.simulationSpace = reader.ReadProperty <UnityEngine.ParticleSystemSimulationSpace>();
                    break;

                case "customSimulationSpace":
                    if (mainModule.customSimulationSpace == null)
                    {
                        mainModule.customSimulationSpace = reader.ReadProperty <UnityEngine.Transform>();
                    }
                    else
                    {
                        reader.ReadIntoProperty <UnityEngine.Transform>(mainModule.customSimulationSpace);
                    }
                    break;

                case "simulationSpeed":
                    mainModule.simulationSpeed = reader.ReadProperty <System.Single>();
                    break;

                case "useUnscaledTime":
#if UNITY_2017_1_OR_NEWER
                    mainModule.useUnscaledTime = reader.ReadProperty <System.Boolean>();
#else
                    reader.ReadProperty <System.Boolean>();
#endif
                    break;

                case "scalingMode":
                    mainModule.scalingMode = reader.ReadProperty <UnityEngine.ParticleSystemScalingMode>();
                    break;

                case "playOnAwake":
                    mainModule.playOnAwake = reader.ReadProperty <System.Boolean>();
                    break;

                case "maxParticles":
                    mainModule.maxParticles = reader.ReadProperty <System.Int32>();
                    break;

                case "emitterVelocityMode":
#if UNITY_2017_1_OR_NEWER
                    mainModule.emitterVelocityMode = reader.ReadProperty <UnityEngine.ParticleSystemEmitterVelocityMode>();
#endif
                    break;
                }
            }
            return(mainModule);
        }