public void Config(SubstanceSettings settings = null) { if (parameters == null) return; if (settings != null) _settings = settings; ProceduralMaterial substance = _renderer.material as ProceduralMaterial; ProceduralMaterial.substanceProcessorUsage = _settings.ProcessorUsage; if (substance) { substance.cacheSize = _settings.CacheSize; //Find out the real names of the properties to create configs. //var substanceParamterNames = substance // .GetProceduralPropertyDescriptions() // .Select(x => x.name) // .ToList(); var properties = parameters.GetProperties(); foreach (var property in properties) { substance.SetProceduralFloat(property.Name, property.Value); } substance.RebuildTextures(); } }
// Use this for initialization void Start () { var aCube = GameObject.FindGameObjectWithTag("Cube1"); var grassParams = aCube.GetComponent<GrassSubstanceParameters>(); grassParams.GrassAmount = 10; var config = aCube.GetComponent<SubstanceConfiguration>(); config.parameters = grassParams; var low = new SubstanceSettings { CacheSize = ProceduralCacheSize.None, ProcessorUsage = ProceduralProcessorUsage.Half }; var high = new SubstanceSettings { CacheSize = ProceduralCacheSize.NoLimit, ProcessorUsage = ProceduralProcessorUsage.All }; config.Config(low); }
public SubstanceConfiguration() { _settings = new SubstanceSettings(); }