Matt Dean
7 年前
当前提交
7c973636
共有 64 个文件被更改,包括 983 次插入 和 296 次删除
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/AssetCallbacks/CreateShaderSubGraph.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Graphs/AbstractMaterialGraph.cs
-
31MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Graphs/ScreenPositionMaterialSlot.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Graphs/UVMaterialSlot.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/AbstractMaterialNode.cs
-
8MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Adjustment/ReplaceColorNode.cs
-
42MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Blend/BlendNode.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Filter/DitherNode.cs
-
9MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Mask/ColorMaskNode.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/CodeFunctionNode.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Input/Basic/ColorNode.cs
-
30MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Input/Geometry/ScreenPositionNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/AbsoluteNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/ExponentialNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/LengthNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/LogNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/ModuloNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/NegateNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/NormalizeNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/PosterizeNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/ReciprocalNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Advanced/ReciprocalSquareRootNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Basic/AddNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Basic/DivideNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Basic/MultiplyNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Basic/PowerNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Basic/SquareRootNode.cs
-
5MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Basic/SubtractNode.cs
-
7MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Math/Range/RandomRangeNode.cs
-
3MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Blackboard/Blackboard.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Blackboard/BlackboardField.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Blackboard/BlackboardRow.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Blackboard/BlackboardSection.cs
-
103MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Inspector/MasterPreviewView.cs
-
16MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Manipulators/ResizeBorderFrame.cs
-
62MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Manipulators/ResizeSideHandle.cs
-
16MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/PreviewManager.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/SearchWindowProvider.cs
-
28MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Views/GraphEditorView.cs
-
44MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Views/MaterialGraphView.cs
-
238MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Views/MaterialNodeView.cs
-
14MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Views/PortInputView.cs
-
6MaterialGraphProject/Assets/UnityShaderEditor/Editor/Importers/ShaderGraphImporter.cs
-
108MaterialGraphProject/Assets/UnityShaderEditor/Editor/Resources/Styles/MaterialGraph.uss
-
4MaterialGraphProject/Assets/UnityShaderEditor/package.json
-
23MaterialGraphProject/Assets/UnityShaderEditor/Editor/AssetCallbacks/CreatePBRShaderGraph.cs
-
23MaterialGraphProject/Assets/UnityShaderEditor/Editor/AssetCallbacks/CreateUnlitShaderGraph.cs
-
11MaterialGraphProject/Assets/UnityShaderEditor/Editor/AssetCallbacks/CreateUnlitShaderGraph.cs.meta
-
58MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Procedural/Noise/GradientNoiseNode.cs
-
11MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Procedural/Noise/GradientNoiseNode.cs.meta
-
28MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Util/ScreenSpaceType.cs
-
11MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Util/ScreenSpaceType.cs.meta
-
34MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Manipulators/Scrollable.cs
-
11MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Manipulators/Scrollable.cs.meta
-
59MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Views/PixelCacheProfilerView.cs
-
3MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Views/PixelCacheProfilerView.cs.meta
-
31MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Views/Slots/ScreenPositionSlotControlView.cs
-
11MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Views/Slots/ScreenPositionSlotControlView.cs.meta
-
11MaterialGraphProject/Assets/UnityShaderEditor/Editor/Resources/Styles/PixelCacheProfiler.uss
-
7MaterialGraphProject/Assets/UnityShaderEditor/Editor/Resources/Styles/PixelCacheProfiler.uss.meta
-
39MaterialGraphProject/Assets/UnityShaderEditor/Editor/Resources/UXML/PixelCacheProfiler.uxml
-
7MaterialGraphProject/Assets/UnityShaderEditor/Editor/Resources/UXML/PixelCacheProfiler.uxml.meta
-
23MaterialGraphProject/Assets/UnityShaderEditor/Editor/AssetCallbacks/CreateShaderGraph.cs
-
0/MaterialGraphProject/Assets/UnityShaderEditor/Editor/AssetCallbacks/CreatePBRShaderGraph.cs.meta
|
|||
{ |
|||
"name": "com.unity.shadergraph", |
|||
"description": "Shader Graph", |
|||
"version": "0.1.14", |
|||
"version": "0.1.17", |
|||
} |
|||
} |
|
|||
using System.IO; |
|||
using UnityEditor.ProjectWindowCallback; |
|||
|
|||
namespace UnityEditor.ShaderGraph |
|||
{ |
|||
public class CreatePBRShaderGraph : EndNameEditAction |
|||
{ |
|||
[MenuItem("Assets/Create/Shader/PBR Graph", false, 208)] |
|||
public static void CreateMaterialGraph() |
|||
{ |
|||
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, CreateInstance<CreatePBRShaderGraph>(), |
|||
"New Shader Graph.ShaderGraph", null, null); |
|||
} |
|||
|
|||
public override void Action(int instanceId, string pathName, string resourceFile) |
|||
{ |
|||
var graph = new MaterialGraph(); |
|||
graph.AddNode(new PBRMasterNode()); |
|||
File.WriteAllText(pathName, EditorJsonUtility.ToJson(graph)); |
|||
AssetDatabase.Refresh(); |
|||
} |
|||
} |
|||
} |
|
|||
using System.IO; |
|||
using UnityEditor.ProjectWindowCallback; |
|||
|
|||
namespace UnityEditor.ShaderGraph |
|||
{ |
|||
public class CreateUnlitShaderGraph : EndNameEditAction |
|||
{ |
|||
[MenuItem("Assets/Create/Shader/Unlit Graph", false, 208)] |
|||
public static void CreateMaterialGraph() |
|||
{ |
|||
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, CreateInstance<CreateUnlitShaderGraph>(), |
|||
"New Shader Graph.ShaderGraph", null, null); |
|||
} |
|||
|
|||
public override void Action(int instanceId, string pathName, string resourceFile) |
|||
{ |
|||
var graph = new MaterialGraph(); |
|||
graph.AddNode(new UnlitMasterNode()); |
|||
File.WriteAllText(pathName, EditorJsonUtility.ToJson(graph)); |
|||
AssetDatabase.Refresh(); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 5f2488f286c4e264ba7984f8889461cc |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System.Reflection; |
|||
using UnityEngine; |
|||
|
|||
namespace UnityEditor.ShaderGraph |
|||
{ |
|||
[Title("Procedural", "Noise", "Gradient Noise")] |
|||
public class GradientNoiseNode : CodeFunctionNode |
|||
{ |
|||
public GradientNoiseNode() |
|||
{ |
|||
name = "Gradient Noise"; |
|||
} |
|||
|
|||
protected override MethodInfo GetFunctionToConvert() |
|||
{ |
|||
return GetType().GetMethod("Unity_GradientNoise", BindingFlags.Static | BindingFlags.NonPublic); |
|||
} |
|||
|
|||
static string Unity_GradientNoise( |
|||
[Slot(0, Binding.MeshUV0)] Vector2 UV, |
|||
[Slot(1, Binding.None, 10, 10, 10, 10)] Vector1 Scale, |
|||
[Slot(2, Binding.None)] out Vector1 Out) |
|||
{ |
|||
return "{ Out = unity_gradientNoise(UV * Scale) + 0.5; }"; |
|||
} |
|||
|
|||
public override void GenerateNodeFunction(FunctionRegistry registry, GenerationMode generationMode) |
|||
{ |
|||
registry.ProvideFunction("unity_gradientNoise_dir", s => s.Append(@"
|
|||
float2 unity_gradientNoise_dir(float2 p) |
|||
{ |
|||
// Permutation and hashing used in webgl-nosie goo.gl/pX7HtC
|
|||
p = p % 289; |
|||
float x = (34 * p.x + 1) * p.x % 289 + p.y; |
|||
x = (34 * x + 1) * x % 289; |
|||
x = frac(x / 41) * 2 - 1; |
|||
return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5)); |
|||
} |
|||
"));
|
|||
|
|||
registry.ProvideFunction("unity_gradientNoise", s => s.Append(@"
|
|||
float unity_gradientNoise(float2 p) |
|||
{ |
|||
float2 ip = floor(p); |
|||
float2 fp = frac(p); |
|||
float d00 = dot(unity_gradientNoise_dir(ip), fp); |
|||
float d01 = dot(unity_gradientNoise_dir(ip + float2(0, 1)), fp - float2(0, 1)); |
|||
float d10 = dot(unity_gradientNoise_dir(ip + float2(1, 0)), fp - float2(1, 0)); |
|||
float d11 = dot(unity_gradientNoise_dir(ip + float2(1, 1)), fp - float2(1, 1)); |
|||
fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10); |
|||
return lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x); |
|||
} |
|||
"));
|
|||
|
|||
base.GenerateNodeFunction(registry, generationMode); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: c8e5f34a7e7cbfe4a9444e42ccfc7ea4 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
namespace UnityEditor.ShaderGraph |
|||
{ |
|||
public enum ScreenSpaceType |
|||
{ |
|||
Default, |
|||
Raw, |
|||
Center, |
|||
Tiled |
|||
}; |
|||
|
|||
public static class ScreenSpaceTypeExtensions |
|||
{ |
|||
public static string ToValueAsVariable(this ScreenSpaceType screenSpaceType) |
|||
{ |
|||
switch (screenSpaceType) |
|||
{ |
|||
case ScreenSpaceType.Raw: |
|||
return string.Format("IN.{0}", ShaderGeneratorNames.ScreenPosition); |
|||
case ScreenSpaceType.Center: |
|||
return string.Format("float4(IN.{0}.xy / IN.{0}.w * 2 - 1, 0, 0)", ShaderGeneratorNames.ScreenPosition); |
|||
case ScreenSpaceType.Tiled: |
|||
return string.Format("frac(float4((IN.{0}.x / IN.{0}.w * 2 - 1) * _ScreenParams.x / _ScreenParams.y, IN.{0}.y / IN.{0}.w * 2 - 1, 0, 0))", ShaderGeneratorNames.ScreenPosition); |
|||
default: |
|||
return string.Format("float4(IN.{0}.xy / IN.{0}.w, 0, 0)", ShaderGeneratorNames.ScreenPosition); |
|||
} |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: d296e8d1103ed5c49a267d57be0f4d96 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using UnityEngine; |
|||
using UnityEngine.Experimental.UIElements; |
|||
using System; |
|||
|
|||
namespace UnityEditor.ShaderGraph.Drawing |
|||
{ |
|||
public class Scrollable : MouseManipulator |
|||
{ |
|||
Action<float> m_Handler; |
|||
|
|||
public Scrollable(Action<float> handler) |
|||
{ |
|||
m_Handler = handler; |
|||
} |
|||
|
|||
protected override void RegisterCallbacksOnTarget() |
|||
{ |
|||
target.RegisterCallback<WheelEvent>(HandleMouseWheelEvent); |
|||
} |
|||
|
|||
protected override void UnregisterCallbacksFromTarget() |
|||
{ |
|||
target.UnregisterCallback<WheelEvent>(HandleMouseWheelEvent); |
|||
} |
|||
|
|||
void HandleMouseWheelEvent(WheelEvent evt) |
|||
{ |
|||
m_Handler(evt.delta.y); |
|||
evt.StopPropagation(); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 9ea23c5e75fdbea49824261efe5fc133 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System.Linq; |
|||
using UnityEngine; |
|||
using UnityEngine.Experimental.UIElements; |
|||
|
|||
namespace UnityEditor.ShaderGraph.Drawing |
|||
{ |
|||
public class PixelCacheProfilerView : VisualElement |
|||
{ |
|||
readonly VisualElement m_Target; |
|||
Label m_TotalLabel; |
|||
Label m_DirtyLabel; |
|||
Label m_TotalNodeContentsLabel; |
|||
Label m_DirtyNodeContentsLabel; |
|||
Label m_TotalPreviewsLabel; |
|||
Label m_DirtyPreviewsLabel; |
|||
Label m_TotalInlinesLabel; |
|||
Label m_DirtyInlinesLabel; |
|||
|
|||
public PixelCacheProfilerView(VisualElement target) |
|||
{ |
|||
m_Target = target; |
|||
|
|||
var tpl = Resources.Load<VisualTreeAsset>("UXML/PixelCacheProfiler"); |
|||
tpl.CloneTree(this, null); |
|||
|
|||
m_TotalLabel = this.Q<Label>("totalLabel"); |
|||
m_DirtyLabel = this.Q<Label>("dirtyLabel"); |
|||
m_TotalNodeContentsLabel = this.Q<Label>("totalNodeContentsLabel"); |
|||
m_DirtyNodeContentsLabel = this.Q<Label>("dirtyNodeContentsLabel"); |
|||
m_TotalPreviewsLabel = this.Q<Label>("totalPreviewsLabel"); |
|||
m_DirtyPreviewsLabel = this.Q<Label>("dirtyPreviewsLabel"); |
|||
m_TotalInlinesLabel = this.Q<Label>("totalInlinesLabel"); |
|||
m_DirtyInlinesLabel = this.Q<Label>("dirtyInlinesLabel"); |
|||
} |
|||
|
|||
public void Profile() |
|||
{ |
|||
var caches = m_Target.Query().Where(ve => ve.clippingOptions == ClippingOptions.ClipAndCacheContents).Build().ToList(); |
|||
var dirtyCaches = caches.Where(ve => ve.IsDirty(ChangeType.Repaint)).ToList(); |
|||
m_TotalLabel.text = caches.Count.ToString(); |
|||
m_DirtyLabel.text = dirtyCaches.Count.ToString(); |
|||
|
|||
var nodeContentsCaches = caches.Where(ve => ve.name == "node-border").ToList(); |
|||
var dirtyNodeContentsCaches = nodeContentsCaches.Where(ve => ve.IsDirty(ChangeType.Repaint)).ToList(); |
|||
m_TotalNodeContentsLabel.text = nodeContentsCaches.Count.ToString(); |
|||
m_DirtyNodeContentsLabel.text = dirtyNodeContentsCaches.Count.ToString(); |
|||
|
|||
var previewCaches = caches.Where(ve => ve.name == "previewContainer").ToList(); |
|||
var dirtyPreviewCaches = previewCaches.Where(ve => ve.IsDirty(ChangeType.Repaint)).ToList(); |
|||
m_TotalPreviewsLabel.text = previewCaches.Count.ToString(); |
|||
m_DirtyPreviewsLabel.text = dirtyPreviewCaches.Count.ToString(); |
|||
|
|||
var inlineCaches = caches.Where(ve => ve.name == "portInputContainer").ToList(); |
|||
var dirtyInlineCaches = inlineCaches.Where(ve => ve.IsDirty(ChangeType.Repaint)).ToList(); |
|||
m_TotalInlinesLabel.text = inlineCaches.Count.ToString(); |
|||
m_DirtyInlinesLabel.text = dirtyInlineCaches.Count.ToString(); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 7147f25b12dd4427b4c8afd44624f35b |
|||
timeCreated: 1517227822 |
|
|||
using System; |
|||
using UnityEditor.Graphing; |
|||
using UnityEditor.Experimental.UIElements; |
|||
using UnityEngine.Experimental.UIElements; |
|||
|
|||
namespace UnityEditor.ShaderGraph.Drawing.Slots |
|||
{ |
|||
public class ScreenPositionSlotControlView : VisualElement |
|||
{ |
|||
ScreenPositionMaterialSlot m_Slot; |
|||
|
|||
public ScreenPositionSlotControlView(ScreenPositionMaterialSlot slot) |
|||
{ |
|||
m_Slot = slot; |
|||
var enumField = new EnumField(slot.screenSpaceType); |
|||
enumField.OnValueChanged(OnValueChanged); |
|||
Add(enumField); |
|||
} |
|||
|
|||
void OnValueChanged(ChangeEvent<Enum> evt) |
|||
{ |
|||
var screenSpaceType = (ScreenSpaceType)evt.newValue; |
|||
if (screenSpaceType != m_Slot.screenSpaceType) |
|||
{ |
|||
m_Slot.owner.owner.owner.RegisterCompleteObjectUndo("Change Screen Space Type"); |
|||
m_Slot.screenSpaceType = screenSpaceType; |
|||
m_Slot.owner.Dirty(ModificationScope.Graph); |
|||
} |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 1774f54355319894888ab5ec90b728e7 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
PixelCacheProfilerView > #content > #title { |
|||
font-style: bold; |
|||
} |
|||
|
|||
PixelCacheProfilerView > #content > .row { |
|||
flex-direction: row; |
|||
} |
|||
|
|||
PixelCacheProfilerView > #content > .indented { |
|||
padding-left: 8; |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 61cf67e9c1f54ceab08d2bd16ffd3c53 |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} |
|
|||
<UXML xmlns:ui="UnityEngine.Experimental.UIElements"> |
|||
<ui:VisualElement name="content"> |
|||
<Style path="Styles/PixelCacheProfiler"/> |
|||
<ui:Label name="title" text="Pixel Cache Profiler"/> |
|||
<ui:VisualElement class="row"> |
|||
<ui:Label text="Total pixel caches: "/> |
|||
<ui:Label name="totalLabel" text="-"/> |
|||
</ui:VisualElement> |
|||
<ui:VisualElement class="indented row"> |
|||
<ui:Label text="Node contents: "/> |
|||
<ui:Label name="totalNodeContentsLabel" text="-"/> |
|||
</ui:VisualElement> |
|||
<ui:VisualElement class="indented row"> |
|||
<ui:Label text="Node previews: "/> |
|||
<ui:Label name="totalPreviewsLabel" text="-"/> |
|||
</ui:VisualElement> |
|||
<ui:VisualElement class="indented row"> |
|||
<ui:Label text="Inline inputs: "/> |
|||
<ui:Label name="totalInlinesLabel" text="-"/> |
|||
</ui:VisualElement> |
|||
|
|||
<ui:VisualElement class="row"> |
|||
<ui:Label text="Dirty pixel caches: "/> |
|||
<ui:Label name="dirtyLabel" text="-"/> |
|||
</ui:VisualElement> |
|||
<ui:VisualElement class="indented row"> |
|||
<ui:Label text="Node contents: "/> |
|||
<ui:Label name="dirtyNodeContentsLabel" text="-"/> |
|||
</ui:VisualElement> |
|||
<ui:VisualElement class="indented row"> |
|||
<ui:Label text="Node previews: "/> |
|||
<ui:Label name="dirtyPreviewsLabel" text="-"/> |
|||
</ui:VisualElement> |
|||
<ui:VisualElement class="indented row"> |
|||
<ui:Label text="Inline inputs: "/> |
|||
<ui:Label name="dirtyInlinesLabel" text="-"/> |
|||
</ui:VisualElement> |
|||
</ui:VisualElement> |
|||
</UXML> |
|
|||
fileFormatVersion: 2 |
|||
guid: 0fda1aff5a5744478f70542e95fd3d42 |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0} |
|
|||
using System.IO; |
|||
using UnityEditor.ProjectWindowCallback; |
|||
|
|||
namespace UnityEditor.ShaderGraph |
|||
{ |
|||
public class CreateShaderGraph : EndNameEditAction |
|||
{ |
|||
[MenuItem("Assets/Create/Shader Graph", false, 208)] |
|||
public static void CreateMaterialGraph() |
|||
{ |
|||
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, CreateInstance<CreateShaderGraph>(), |
|||
"New Shader Graph.ShaderGraph", null, null); |
|||
} |
|||
|
|||
public override void Action(int instanceId, string pathName, string resourceFile) |
|||
{ |
|||
var graph = new MaterialGraph(); |
|||
graph.AddNode(new PBRMasterNode()); |
|||
File.WriteAllText(pathName, EditorJsonUtility.ToJson(graph)); |
|||
AssetDatabase.Refresh(); |
|||
} |
|||
} |
|||
} |
撰写
预览
正在加载...
取消
保存
Reference in new issue