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); } }
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); } }