Ejemplo n.º 1
0
        void AddElementByType(Material material, TVEElementDrawerData data)
        {
            if (material.HasProperty(layerProp))
            {
                data.elementLayer = (ElementLayer)material.GetInt(layerProp);
            }

            bool validType = false;

            if (material.HasProperty("_IsColorsShader"))
            {
                data.elementType = ElementType.Colors;
                validType        = true;
            }

            if (material.HasProperty("_IsExtrasShader"))
            {
                data.elementType = ElementType.Extras;
                validType        = true;
            }

            if (material.HasProperty("_IsMotionShader"))
            {
                data.elementType = ElementType.Motion;
                validType        = true;
            }

            if (validType)
            {
                TVEManager.Instance.globalVolume.volumeElements.Add(data);
            }
        }
Ejemplo n.º 2
0
        void AddElementToVolume()
        {
            if (TVEManager.Instance == null)
            {
                return;
            }

            if (gameObject.GetComponent <MeshRenderer>() != null && gameObject.GetComponent <MeshRenderer>().sharedMaterial != null)
            {
                var material = gameObject.GetComponent <MeshRenderer>().sharedMaterial;
                var data     = new TVEElementDrawerData(ElementType.Undefined, ElementLayer.Any, RendererType.Mesh, gameObject, gameObject.GetComponent <MeshFilter>().sharedMesh, gameObject.GetComponent <Renderer>());

                AddElementByType(material, data);
            }
            else if (gameObject.GetComponent <ParticleSystemRenderer>() != null && gameObject.GetComponent <ParticleSystemRenderer>().sharedMaterial != null)
            {
                var material = gameObject.GetComponent <ParticleSystemRenderer>().sharedMaterial;
                var data     = new TVEElementDrawerData(ElementType.Undefined, ElementLayer.Any, RendererType.Particle, gameObject, new Mesh(), gameObject.GetComponent <Renderer>());
                data.mesh.name = "Particle";

                AddElementByType(material, data);
            }
        }