Eduardo Chaves
8 年前
当前提交
620b809b
共有 8 个文件被更改,包括 185 次插入 和 12 次删除
-
25MaterialGraphProject/Assets/Eduardo/FunctionNInNOut.cs
-
1MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/MaterialGraphPresenter.cs
-
21MaterialGraphProject/Assets/UnityShaderEditor/Editor/HelperShader.shader
-
6MaterialGraphProject/Assets/UnityShaderEditor/Editor/HelperShader.shader.meta
-
50MaterialGraphProject/Assets/Eduardo/Editor/AddManyNodePresenter.cs
-
12MaterialGraphProject/Assets/Eduardo/Editor/AddManyNodePresenter.cs.meta
-
70MaterialGraphProject/Assets/Eduardo/FunctionNAddNode.cs
-
12MaterialGraphProject/Assets/Eduardo/FunctionNAddNode.cs.meta
|
|||
fileFormatVersion: 2 |
|||
guid: 9ab5e16c2083a4fe689209a8c1ae425e |
|||
timeCreated: 1495526268 |
|||
timeCreated: 1495529915 |
|||
nonModifiableTextures: [] |
|||
nonModifiableTextures: |
|||
- Texture_5537060b_db74_4900_8f2b_178ba97b7f11_Uniform: {fileID: 2800000, guid: 6e8d12f68bae2294da814f9d4c81b29a, |
|||
type: 3} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using UnityEngine.MaterialGraph; |
|||
using RMGUI.GraphView; |
|||
using UnityEditor.Graphing.Drawing; |
|||
using UnityEngine; |
|||
|
|||
namespace UnityEditor.MaterialGraph.Drawing |
|||
{ |
|||
[Serializable] |
|||
class AddManyContolPresenter : GraphControlPresenter |
|||
{ |
|||
|
|||
public override void OnGUIHandler() |
|||
{ |
|||
base.OnGUIHandler(); |
|||
|
|||
var addNode = node as UnityEngine.MaterialGraph.AddManyNode; |
|||
if (addNode == null) |
|||
return; |
|||
|
|||
if (GUILayout.Button("Add Slot")) |
|||
{ |
|||
addNode.AddInputSlot(); |
|||
addNode.OnModified(); |
|||
} |
|||
if (GUILayout.Button("Remove Slot")) |
|||
{ |
|||
addNode.RemoveInputSlot(); |
|||
addNode.OnModified(); |
|||
} |
|||
} |
|||
|
|||
public override float GetHeight() |
|||
{ |
|||
return EditorGUIUtility.singleLineHeight * 2 + 10 * EditorGUIUtility.standardVerticalSpacing; |
|||
} |
|||
} |
|||
|
|||
[Serializable] |
|||
public class AddManyNodePresenter : MaterialNodePresenter |
|||
{ |
|||
protected override IEnumerable<GraphElementPresenter> GetControlData() |
|||
{ |
|||
var instance = CreateInstance<AddManyContolPresenter>(); |
|||
instance.Initialize(node); |
|||
return new List<GraphElementPresenter> { instance }; |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 0d89e5c0d48973c4ab16793131164a16 |
|||
timeCreated: 1495530357 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine.Graphing; |
|||
using System.Linq; |
|||
using System.Collections; |
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Title("Math/Advanced/AddMultiple")] |
|||
public class AddManyNode : FunctionNInNOut, IGeneratesFunction |
|||
{ |
|||
int m_nodeInputCount = 2; |
|||
|
|||
public void AddInputSlot() |
|||
{ |
|||
string inputName = "Input" + GetInputSlots<ISlot>().Count().ToString(); |
|||
AddSlot(inputName, inputName, Graphing.SlotType.Input, SlotValueType.Dynamic); |
|||
} |
|||
|
|||
public AddManyNode() |
|||
{ |
|||
name = "AddMany"; |
|||
for(int i = 0; i < m_nodeInputCount; ++i) |
|||
{ |
|||
AddInputSlot(); |
|||
} |
|||
|
|||
AddSlot("Sum", "finalSum", Graphing.SlotType.Output, SlotValueType.Dynamic); |
|||
UpdateNodeAfterDeserialization(); |
|||
} |
|||
|
|||
public void OnModified() |
|||
{ |
|||
if (onModified != null) |
|||
onModified(this, ModificationScope.Node); |
|||
} |
|||
|
|||
protected override string GetFunctionName() |
|||
{ |
|||
return "unity_AddMultiple"; |
|||
} |
|||
|
|||
string GetSumOfAllInputs() |
|||
{ |
|||
string sumString = ""; |
|||
int inputsLeft = GetInputSlots<ISlot>().Count(); |
|||
|
|||
foreach (ISlot slot in GetInputSlots<ISlot>()) |
|||
{ |
|||
sumString += GetShaderOutputName(slot.id); |
|||
if (inputsLeft > 1) |
|||
sumString += " + "; |
|||
--inputsLeft; |
|||
} |
|||
|
|||
return sumString; |
|||
} |
|||
|
|||
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode) |
|||
{ |
|||
var outputString = new ShaderGenerator(); |
|||
outputString.AddShaderChunk(GetFunctionPrototype(), false); |
|||
outputString.AddShaderChunk("{", false); |
|||
outputString.Indent(); |
|||
outputString.AddShaderChunk("finalSum = " + GetSumOfAllInputs() + ";", false); |
|||
outputString.Deindent(); |
|||
outputString.AddShaderChunk("}", false); |
|||
|
|||
visitor.AddShaderChunk(outputString.GetShaderString(0), true); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 0518e86ee51c0b844a8721050900863a |
|||
timeCreated: 1495486161 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
撰写
预览
正在加载...
取消
保存
Reference in new issue