static void PreExport(Shader shader) { var path = UnityPath.FromUnityPath(EXPORT_DIR + EscapeShaderName(shader.name) + ".cs"); Debug.LogFormat("PreExport: {0}", path.FullPath); var props = ShaderProps.FromShader(shader); File.WriteAllText(path.FullPath, props.ToString(shader.name)); }
static void PreExport(SupportedShader supportedShader) { var shader = Shader.Find(supportedShader.ShaderName); var props = ShaderProps.FromShader(shader); var path = Path.Combine(ExportDir, supportedShader.TargetFolder); path = Path.Combine(path, EscapeShaderName(supportedShader.ShaderName) + ".cs").Replace("\\", "/"); Debug.LogFormat("PreExport: {0}", path); File.WriteAllText(path, ToString(props, shader.name)); }
static string ToString(ShaderProps props, string shaderName) { var list = new List <string>(); foreach (var prop in props.Properties) { list.Add(string.Format("new ShaderProperty(\"{0}\", ShaderPropertyType.{1})\r\n", prop.Key, prop.ShaderPropertyType)); } return(string.Format(@"using System.Collections.Generic; namespace UniGLTF.ShaderPropExporter {{ public static partial class PreShaderPropExporter {{ [PreExportShader] static KeyValuePair<string, ShaderProps> {0} {{ get {{ return new KeyValuePair<string, ShaderProps>( ""{1}"", new ShaderProps {{ Properties = new ShaderProperty[]{{ {2} }} }} ); }} }} }} }} " , EscapeShaderName(shaderName) , shaderName , string.Join(",", list.ToArray()))); }