您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
41 行
1.2 KiB
41 行
1.2 KiB
using UnityEditor;
|
|
using UnityEditor.Experimental.AssetImporters;
|
|
using UnityEditor.MaterialGraph.Drawing;
|
|
using UnityEngine;
|
|
using Debug = System.Diagnostics.Debug;
|
|
|
|
[CustomEditor(typeof(ShaderSubGraphImporter))]
|
|
public class ShaderSubGraphImporterEditor : ScriptedImporterEditor
|
|
{
|
|
public override void OnInspectorGUI()
|
|
{
|
|
if (GUILayout.Button("Open Shader Editor"))
|
|
{
|
|
AssetImporter importer = target as AssetImporter;
|
|
Debug.Assert(importer != null, "importer != null");
|
|
ShowGraphEditWindow(importer.assetPath);
|
|
}
|
|
}
|
|
|
|
private static void ShowGraphEditWindow(string path)
|
|
{
|
|
var asset = AssetDatabase.LoadAssetAtPath<Object>(path);
|
|
var windows = Resources.FindObjectsOfTypeAll<SubGraphEditWindow>();
|
|
bool foundWindow = false;
|
|
foreach (var w in windows)
|
|
{
|
|
if (w.selected == asset)
|
|
{
|
|
foundWindow = true;
|
|
w.Focus();
|
|
}
|
|
}
|
|
|
|
if (!foundWindow)
|
|
{
|
|
var window = CreateInstance<SubGraphEditWindow>();
|
|
window.Show();
|
|
window.ChangeSelection(asset);
|
|
}
|
|
}
|
|
}
|