123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /// <summary>
- /// Shader Control - (C) Copyright 2016-2022 Ramiro Oliva (Kronnect)
- /// </summary>
- ///
- using UnityEngine;
- using UnityEditor;
- using System;
- using System.IO;
- using System.Text;
- namespace ShaderControl {
- public partial class SCWindow : EditorWindow {
- const int SHADER_GRAPH_KEYWORD_DEFINITION_MULTI_COMPILE = 1;
- const int SHADER_GRAPH_KEYWORD_DEFINITION_SHADER_FEATURE = 0;
- const int SHADER_GRAPH_KEYWORD_SCOPE_GLOBAL = 1;
- const int SHADER_GRAPH_KEYWORD_SCOPE_LOCAL = 0;
- void ScanShaderGraph(SCShader shader) {
- // Reads shader
- string shaderContents = File.ReadAllText(shader.path, Encoding.UTF8);
- // Check shader graph version
- if (shaderContents.Contains("m_SGVersion")) {
- shader.shaderGraphVersion = 3;
- ScanShaderGraphV2(shader, shaderContents);
- } else if (shaderContents.Contains("m_Version")) {
- shader.shaderGraphVersion = 2;
- ScanShaderGraphV2(shader, shaderContents);
- } else {
- shader.shaderGraphVersion = 1;
- ScanShaderGraphV1(shader, shaderContents);
- }
- }
- void UpdateShaderGraph(SCShader shader) {
- // Currently shader graph keywords cannot be disabled with Shader Control to avoid graph issues
- // Just click "Locate" and remove the keyword using the Shader Graph editor
- }
- void ConvertToLocalGraph(SCKeyword keyword, SCShader shader) {
- if (shader.shaderGraphVersion == 2) {
- ConvertToLocalGraphV2(keyword, shader);
- } else {
- ConvertToLocalGraphV1(keyword, shader);
- }
- }
- }
- }
|