Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
        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");
        }