public StartupParticleSystemData(int index, ParticleSystem particleSystem) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) MainModule main = particleSystem.get_main(); particleSystemIndex = index; m_ringBufferMode = main.get_ringBufferMode(); }
protected override void ReadFromImpl(object obj) { base.ReadFromImpl(obj); ParticleSystem.MainModule uo = (ParticleSystem.MainModule)obj; duration = uo.duration; loop = uo.loop; prewarm = uo.prewarm; startDelay = uo.startDelay; startDelayMultiplier = uo.startDelayMultiplier; startLifetime = uo.startLifetime; startLifetimeMultiplier = uo.startLifetimeMultiplier; startSpeed = uo.startSpeed; startSpeedMultiplier = uo.startSpeedMultiplier; startSize3D = uo.startSize3D; startSize = uo.startSize; startSizeMultiplier = uo.startSizeMultiplier; startSizeX = uo.startSizeX; startSizeXMultiplier = uo.startSizeXMultiplier; startSizeY = uo.startSizeY; startSizeYMultiplier = uo.startSizeYMultiplier; startSizeZ = uo.startSizeZ; startSizeZMultiplier = uo.startSizeZMultiplier; startRotation3D = uo.startRotation3D; startRotation = uo.startRotation; startRotationMultiplier = uo.startRotationMultiplier; startRotationX = uo.startRotationX; startRotationXMultiplier = uo.startRotationXMultiplier; startRotationY = uo.startRotationY; startRotationYMultiplier = uo.startRotationYMultiplier; startRotationZ = uo.startRotationZ; startRotationZMultiplier = uo.startRotationZMultiplier; flipRotation = uo.flipRotation; startColor = uo.startColor; gravityModifier = uo.gravityModifier; gravityModifierMultiplier = uo.gravityModifierMultiplier; simulationSpace = uo.simulationSpace; customSimulationSpace = ToID(uo.customSimulationSpace); simulationSpeed = uo.simulationSpeed; useUnscaledTime = uo.useUnscaledTime; scalingMode = uo.scalingMode; playOnAwake = uo.playOnAwake; maxParticles = uo.maxParticles; emitterVelocityMode = uo.emitterVelocityMode; stopAction = uo.stopAction; cullingMode = uo.cullingMode; ringBufferMode = uo.ringBufferMode; ringBufferLoopRange = uo.ringBufferLoopRange; }
override public void OnInspectorGUI(InitialModuleUI initial) { GUIFloat(s_Texts.duration, m_LengthInSec, "f2"); EditorGUI.BeginChangeCheck(); bool looping = GUIToggle(s_Texts.looping, m_Looping); if (EditorGUI.EndChangeCheck() && looping) { foreach (ParticleSystem ps in m_ParticleSystemUI.m_ParticleSystems) { if (ps.time >= ps.main.duration) { ps.time = 0.0f; } } } using (new EditorGUI.DisabledScope(!m_Looping.boolValue)) { GUIToggle(s_Texts.prewarm, m_Prewarm); } using (new EditorGUI.DisabledScope(m_Prewarm.boolValue && m_Looping.boolValue)) { GUIMinMaxCurve(s_Texts.startDelay, m_StartDelay); } GUIMinMaxCurve(s_Texts.lifetime, m_LifeTime); GUIMinMaxCurve(s_Texts.speed, m_Speed); // Size EditorGUI.BeginChangeCheck(); bool size3D = GUIToggle(s_Texts.size3D, m_Size3D); if (EditorGUI.EndChangeCheck()) { // Remove old curves from curve editor if (!size3D) { m_SizeY.RemoveCurveFromEditor(); m_SizeZ.RemoveCurveFromEditor(); } } // Keep states in sync if (!m_SizeX.stateHasMultipleDifferentValues) { m_SizeZ.SetMinMaxState(m_SizeX.state, size3D); m_SizeY.SetMinMaxState(m_SizeX.state, size3D); } if (size3D) { m_SizeX.m_DisplayName = s_Texts.x; GUITripleMinMaxCurve(GUIContent.none, s_Texts.x, m_SizeX, s_Texts.y, m_SizeY, s_Texts.z, m_SizeZ, null); } else { m_SizeX.m_DisplayName = s_Texts.size; GUIMinMaxCurve(s_Texts.size, m_SizeX); } // Rotation EditorGUI.BeginChangeCheck(); bool rotation3D = GUIToggle(s_Texts.rotation3D, m_Rotation3D); if (EditorGUI.EndChangeCheck()) { // Remove old curves from curve editor if (!rotation3D) { m_RotationX.RemoveCurveFromEditor(); m_RotationY.RemoveCurveFromEditor(); } } // Keep states in sync if (!m_RotationZ.stateHasMultipleDifferentValues) { m_RotationX.SetMinMaxState(m_RotationZ.state, rotation3D); m_RotationY.SetMinMaxState(m_RotationZ.state, rotation3D); } if (rotation3D) { m_RotationZ.m_DisplayName = s_Texts.z; GUITripleMinMaxCurve(GUIContent.none, s_Texts.x, m_RotationX, s_Texts.y, m_RotationY, s_Texts.z, m_RotationZ, null); } else { m_RotationZ.m_DisplayName = s_Texts.rotation; GUIMinMaxCurve(s_Texts.rotation, m_RotationZ); } GUIFloat(s_Texts.randomizeRotationDirection, m_RandomizeRotationDirection); GUIMinMaxGradient(s_Texts.color, m_Color, false); GUIMinMaxCurve(s_Texts.gravity, m_GravityModifier); int space = GUIPopup(s_Texts.simulationSpace, m_SimulationSpace, s_Texts.simulationSpaces); if (space == 2 && m_CustomSimulationSpace != null) { GUIObject(s_Texts.customSimulationSpace, m_CustomSimulationSpace); } GUIFloat(s_Texts.simulationSpeed, m_SimulationSpeed); GUIBoolAsPopup(s_Texts.deltaTime, m_UseUnscaledTime, new string[] { "Scaled", "Unscaled" }); bool anyNonMesh = m_ParticleSystemUI.m_ParticleSystems.FirstOrDefault(o => !o.shape.enabled || (o.shape.shapeType != ParticleSystemShapeType.SkinnedMeshRenderer && o.shape.shapeType != ParticleSystemShapeType.MeshRenderer)) != null; if (anyNonMesh) { GUIPopup(s_Texts.scalingMode, m_ScalingMode, s_Texts.scalingModes); } bool oldPlayOnAwake = m_PlayOnAwake.boolValue; bool newPlayOnAwake = GUIToggle(s_Texts.autoplay, m_PlayOnAwake); if (oldPlayOnAwake != newPlayOnAwake) { m_ParticleSystemUI.m_ParticleEffectUI.PlayOnAwakeChanged(newPlayOnAwake); } GUIBoolAsPopup(s_Texts.emitterVelocity, m_EmitterVelocity, new string[] { "Transform", "Rigidbody" }); GUIInt(s_Texts.maxParticles, m_MaxNumParticles); bool autoRandomSeed = GUIToggle(s_Texts.autoRandomSeed, m_AutoRandomSeed); if (!autoRandomSeed) { bool isInspectorView = m_ParticleSystemUI.m_ParticleEffectUI.m_Owner is ParticleSystemInspector; if (isInspectorView) { GUILayout.BeginHorizontal(); GUIInt(s_Texts.randomSeed, m_RandomSeed); if (!m_ParticleSystemUI.multiEdit && GUILayout.Button("Reseed", EditorStyles.miniButton, GUILayout.Width(60))) { m_RandomSeed.intValue = (int)m_ParticleSystemUI.m_ParticleSystems[0].GenerateRandomSeed(); } GUILayout.EndHorizontal(); } else { GUIInt(s_Texts.randomSeed, m_RandomSeed); if (!m_ParticleSystemUI.multiEdit && GUILayout.Button("Reseed", EditorStyles.miniButton)) { m_RandomSeed.intValue = (int)m_ParticleSystemUI.m_ParticleSystems[0].GenerateRandomSeed(); } } } GUIPopup(s_Texts.stopAction, m_StopAction, s_Texts.stopActions); GUIPopup(s_Texts.cullingMode, m_CullingMode, s_Texts.cullingModes); ParticleSystemRingBufferMode ringBufferMode = (ParticleSystemRingBufferMode)GUIPopup(s_Texts.ringBufferMode, m_RingBufferMode, s_Texts.ringBufferModes); if (!m_RingBufferMode.hasMultipleDifferentValues && ringBufferMode == ParticleSystemRingBufferMode.LoopUntilReplaced) { EditorGUI.indentLevel++; GUIMinMaxRange(s_Texts.ringBufferLoopRange, m_RingBufferLoopRange); EditorGUI.indentLevel--; } }