public override void Action(int instanceId, string pathName, string resourceFile) { var graph = new MaterialGraph(); var mainTextureNode = new MainTextureNode(); var mainTextureSamplerNode = new SampleTexture2DNode(); var masterNode = new ImageEffectMasterNode(); graph.AddNode(masterNode); graph.AddNode(mainTextureSamplerNode); graph.AddNode(mainTextureNode); graph.Connect(mainTextureNode.GetSlotReference(MainTextureNode.OutputSlotId), mainTextureSamplerNode.GetSlotReference(SampleTexture2DNode.TextureInputId)); graph.Connect(mainTextureSamplerNode.GetSlotReference(SampleTexture2DNode.OutputSlotRGBAId), masterNode.GetSlotReference(ImageEffectMasterNode.ColorSlotId)); var nodes = new AbstractMaterialNode[] { masterNode, mainTextureSamplerNode, mainTextureNode }; for (int i = 0; i < nodes.Length; i++) { var node = nodes[i]; var drawState = node.drawState; var drawStatePosition = drawState.position; drawStatePosition.x -= 300 * i; drawState.position = drawStatePosition; node.drawState = drawState; } File.WriteAllText(pathName, EditorJsonUtility.ToJson(graph)); AssetDatabase.Refresh(); }
public override void Action(int instanceId, string pathName, string resourceFile) { var graph = new MaterialGraph(); var mainTextureNode = new MainTextureNode(); var mainTextureSamplerNode = new SampleTexture2DNode(); var masterNode = new ImageEffectMasterNode(); graph.AddNode(masterNode); graph.AddNode(mainTextureSamplerNode); graph.AddNode(mainTextureNode); graph.Connect(mainTextureNode.GetSlotReference(MainTextureNode.OutputSlotId), mainTextureSamplerNode.GetSlotReference(SampleTexture2DNode.TextureInputId)); graph.Connect(mainTextureSamplerNode.GetSlotReference(SampleTexture2DNode.OutputSlotRGBAId), masterNode.GetSlotReference(ImageEffectMasterNode.ColorSlotId)); var nodes = new AbstractMaterialNode[] { masterNode, mainTextureSamplerNode, mainTextureNode }; for (int i = 0; i < nodes.Length; i++) { var node = nodes[i]; var drawState = node.drawState; var drawStatePosition = drawState.position; drawStatePosition.x -= 300 * i; drawState.position = drawStatePosition; node.drawState = drawState; } File.WriteAllText(pathName, EditorJsonUtility.ToJson(graph)); AssetDatabase.Refresh(); if (CreateShaderWithMaterial) { var shaderName = Path.GetFileNameWithoutExtension(pathName); var shader = Shader.Find(shaderName); if (shader == null) { return; } var material = new Material(shader); var materialPath = Path.Combine(Path.GetDirectoryName(pathName), shaderName + ".mat"); AssetDatabase.CreateAsset(material, materialPath); AssetDatabase.SaveAssets(); } }