private void OnEnable() { if (targets.Length == 1) { FastSoftParticle _target = (FastSoftParticle)target; ParticleSystemRenderer particleSystemRenderer = _target.GetComponent <ParticleSystemRenderer>(); if (particleSystemRenderer.AreVertexStreamsEnabled(ParticleSystemVertexStreams.Custom1) == false) { Undo.RecordObject(_target, "EnableVertexStreams,ParticleSystemVertexStreams.Custom1"); particleSystemRenderer.EnableVertexStreams(ParticleSystemVertexStreams.Custom1); } } }
public override void OnInspectorGUI() { if (targets.Length == 1) { FastSoftParticle _target = (FastSoftParticle)target; ParticleSystemRenderer particleSystemRenderer = _target.GetComponent <ParticleSystemRenderer>(); if (particleSystemRenderer == null) { EditorGUILayout.HelpBox("No ParticleSystemRenderer", MessageType.Error); } else { Material m = particleSystemRenderer.sharedMaterial; if (m != null) { GUILayout.BeginVertical(GUI.skin.box); string[] match = new string[] { "Legacy Shaders/Particles/Additive", "Particles/Fast/Additive", "Legacy Shaders/Particles/~Additive-Multiply", "Particles/Fast/~Additive-Multiply", "Legacy Shaders/Particles/Additive (Soft)", "Particles/Fast/Additive (Soft)", "Legacy Shaders/Particles/Alpha Blended", "Particles/Fast/Alpha Blended", "Legacy Shaders/Particles/Anim Alpha Blended", "Particles/Fast/Anim Alpha Blended", "Legacy Shaders/Particles/Blend", "Particles/Fast/Blend", "Legacy Shaders/Particles/Multiply", "Particles/Fast/Multiply", "Legacy Shaders/Particles/Multiply (Double)", "Particles/Fast/Multiply (Double)", "Legacy Shaders/Particles/Alpha Blended Premultiply", "Particles/Fast/Alpha Blended Premultiply", "Particles/Additive", "Particles/Fast/Additive", "Particles/~Additive-Multiply", "Particles/Fast/~Additive-Multiply", "Particles/Additive (Soft)", "Particles/Fast/Additive (Soft)", "Particles/Alpha Blended", "Particles/Fast/Alpha Blended", "Particles/Anim Alpha Blended", "Particles/Fast/Anim Alpha Blended", "Particles/Blend", "Particles/Fast/Blend", "Particles/Multiply", "Particles/Fast/Multiply", "Particles/Multiply (Double)", "Particles/Fast/Multiply (Double)", "Particles/Alpha Blended Premultiply", "Particles/Fast/Alpha Blended Premultiply", }; for (int i = 0; i < match.Length; i += 2) { Shader shader = Shader.Find(match[i]); if (shader != null && m.shader == shader) { if (GUILayout.Button("Switch Shader to Fast SoftParticle Shader", GUILayout.Height(30))) { Undo.RecordObject(m, "SwitchShader"); m.shader = Shader.Find(match[i + 1]); } } } GUILayout.EndVertical(); } } } EditorGUI.BeginChangeCheck(); base.OnInspectorGUI(); if (EditorGUI.EndChangeCheck()) { for (int i = 0; i < targets.Length; i++) { FastSoftParticle _target = (FastSoftParticle)targets[i]; _target.OnEdited(); } } GUILayout.Space(8); m_ShowCollision = GUILayout.Toggle(m_ShowCollision, "Show Collision Result"); }