Boat Attack使用了Universal RP的许多新图形功能,可以用于探索 Universal RP 的使用方式和技巧。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

76 行
2.2 KiB

using System;
using UnityEngine;
namespace UnityEditor.ShaderGraph.Internal
{
public abstract class ShaderInput
{
[SerializeField]
SerializableGuid m_Guid = new SerializableGuid();
internal Guid guid => m_Guid.guid;
[SerializeField]
string m_Name;
public string displayName
{
get
{
if (string.IsNullOrEmpty(m_Name))
return $"{concreteShaderValueType}_{GuidEncoder.Encode(guid)}";
return m_Name;
}
set => m_Name = value;
}
[SerializeField]
string m_DefaultReferenceName;
public string referenceName
{
get
{
if (string.IsNullOrEmpty(overrideReferenceName))
{
if (string.IsNullOrEmpty(m_DefaultReferenceName))
m_DefaultReferenceName = GetDefaultReferenceName();
return m_DefaultReferenceName;
}
return overrideReferenceName;
}
}
// This is required to handle Material data serialized with "_Color_GUID" reference names
// m_DefaultReferenceName expects to match the material data and previously used PropertyType
// ColorShaderProperty is the only case where PropertyType doesnt match ConcreteSlotValueType
public virtual string GetDefaultReferenceName()
{
return $"{concreteShaderValueType.ToString()}_{GuidEncoder.Encode(guid)}";
}
[SerializeField]
string m_OverrideReferenceName;
internal string overrideReferenceName
{
get => m_OverrideReferenceName;
set => m_OverrideReferenceName = value;
}
[SerializeField]
bool m_GeneratePropertyBlock = true;
internal bool generatePropertyBlock
{
get => m_GeneratePropertyBlock;
set => m_GeneratePropertyBlock = value;
}
internal abstract ConcreteSlotValueType concreteShaderValueType { get; }
internal abstract bool isExposable { get; }
internal abstract bool isRenamable { get; }
internal abstract ShaderInput Copy();
}
}