您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

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);
}
}
}
}