浏览代码

[shader graph] Support adding / removing master node slots for easy upgrading.

/main
Tim Cooper 9 年前
当前提交
cb909cbc
共有 3 个文件被更改,包括 37 次插入5 次删除
  1. 3
      UnityProject/Assets/UnityShaderEditor/Editor/Source/Nodes/BaseMaterialNode.cs
  2. 37
      UnityProject/Assets/UnityShaderEditor/Editor/Source/Nodes/PixelShaderNode.cs
  3. 2
      UnityProject/Assets/UnityShaderEditor/Editor/Source/PixelGraph.cs

3
UnityProject/Assets/UnityShaderEditor/Editor/Source/Nodes/BaseMaterialNode.cs


public void AddSlot(Slot slot, Vector4 defaultValue)
{
if (this[slot.name] != null)
return;
base.AddSlot(slot);
// slots are not serialzied but the default values are

37
UnityProject/Assets/UnityShaderEditor/Editor/Source/Nodes/PixelShaderNode.cs


get { return 300; }
}
public override void Init()
public void OnEnable()
name = "PixelMaster";
base.Init();
AddSlot(new Slot(SlotType.InputSlot, kAlbedoSlotName));
AddSlot(new Slot(SlotType.InputSlot, kNormalSlotName));
AddSlot(new Slot(SlotType.InputSlot, kSpecularSlotName));

AddSlot(new Slot(SlotType.InputSlot, kOcclusion));
AddSlot(new Slot(SlotType.InputSlot, kAlphaSlotName));
// clear out slot names that do not match the slots
// we support
RemoveSlotsNameNotMatching(
new[]
{
kAlbedoSlotName,
kNormalSlotName,
kSpecularSlotName,
kEmissionSlotName,
kMetallicSlotName,
kSmoothnessSlotName,
kOcclusion,
kAlphaSlotName
});
}
private void RemoveSlotsNameNotMatching(string[] slotNames)
{
var invalidSlots = slots.Select(x => x.name).Except(slotNames);
foreach (var invalidSlot in invalidSlots)
{
Debug.LogWarningFormat("Removing Invalid Slot: {0}", invalidSlot);
RemoveSlot(this[invalidSlot]);
}
}
public override void Init()
{
name = "PixelMaster";
base.Init();
}
private static List<BaseLightFunction> GetLightFunctions()

2
UnityProject/Assets/UnityShaderEditor/Editor/Source/PixelGraph.cs


return m_ActiveNodes;
}
}
public void GenerateSharedProperties(PropertyGenerator shaderProperties, ShaderGenerator propertyUsages, GenerationMode generationMode)
{
owner.GenerateSharedProperties(shaderProperties, propertyUsages, generationMode);

正在加载...
取消
保存