您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
78 行
1.9 KiB
78 行
1.9 KiB
using UnityEngine;
|
|
|
|
namespace UnityEditor.Graphs.Material
|
|
{
|
|
public class SubGraphInputsNode : SubGraphIOBaseNode, IGenerateProperties
|
|
{
|
|
public override void Init()
|
|
{
|
|
name = "SubGraphInputs";
|
|
title = "Inputs";
|
|
position = new Rect(BaseMaterialGraphGUI.kDefaultNodeWidth * 4, BaseMaterialGraphGUI.kDefaultNodeHeight * 2, Mathf.Max(300, position.width), position.height);
|
|
base.Init();
|
|
}
|
|
|
|
public override void AddSlot ()
|
|
{
|
|
AddSlot (new Slot (SlotType.OutputSlot, GenerateSlotName (SlotType.OutputSlot)));
|
|
}
|
|
|
|
public override void GeneratePropertyBlock(PropertyGenerator visitor, GenerationMode generationMode)
|
|
{
|
|
base.GeneratePropertyBlock (visitor, generationMode);
|
|
|
|
if (!generationMode.IsPreview ())
|
|
return;
|
|
|
|
foreach (var slot in outputSlots)
|
|
{
|
|
if (slot.edges.Count == 0)
|
|
continue;
|
|
|
|
var defaultValue = GetSlotDefaultValue (slot.name);
|
|
if (defaultValue != null)
|
|
defaultValue.GeneratePropertyBlock (visitor, generationMode);
|
|
}
|
|
}
|
|
|
|
public override void GeneratePropertyUsages (ShaderGenerator visitor, GenerationMode generationMode)
|
|
{
|
|
base.GeneratePropertyUsages (visitor, generationMode);
|
|
|
|
if (!generationMode.IsPreview ())
|
|
return;
|
|
|
|
foreach (var slot in outputSlots)
|
|
{
|
|
if (slot.edges.Count == 0)
|
|
continue;
|
|
|
|
var defaultValue = GetSlotDefaultValue(slot.name);
|
|
if (defaultValue != null)
|
|
defaultValue.GeneratePropertyUsages(visitor, generationMode);
|
|
}
|
|
}
|
|
|
|
public override void UpdatePreviewProperties ()
|
|
{
|
|
base.UpdatePreviewProperties ();
|
|
foreach (var slot in outputSlots)
|
|
{
|
|
if (slot.edges.Count == 0)
|
|
continue;
|
|
|
|
var defaultOutput = GetSlotDefaultValue (slot.name);
|
|
if (defaultOutput == null)
|
|
continue;
|
|
|
|
var pp = new PreviewProperty
|
|
{
|
|
m_Name = defaultOutput.inputName,
|
|
m_PropType = PropertyType.Vector4,
|
|
m_Vector4 = defaultOutput.defaultValue
|
|
};
|
|
SetDependentPreviewMaterialProperty(pp);
|
|
}
|
|
}
|
|
}
|
|
}
|