You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

76 lines
2.6 KiB

using UnityEngine;
using UnityEditor.Graphing;
using UnityEditor.ShaderGraph.Internal;
using System.Collections.Generic;
namespace UnityEditor.ShaderGraph
{
[FormerName("UnityEngine.MaterialGraph.ViewDirectionNode")]
[Title("Input", "Geometry", "View Direction")]
class ViewDirectionNode : GeometryNode, IMayRequireViewDirection, IHasCustomDeprecationMessage
{
private const int kOutputSlotId = 0;
public const string kOutputSlotName = "Out";
public override int latestVersion => 1;
public override IEnumerable<int> allowedNodeVersions => new int[] { 1 };
public ViewDirectionNode()
{
name = "View Direction";
synonyms = new string[] { "eye direction" };
UpdateNodeAfterDeserialization();
onAfterVersionChange += () => { if (sgVersion > 0) owner.ClearErrorsForNode(this); };
}
public override void ValidateNode()
{
base.ValidateNode();
if (sgVersion == 0)
{
owner.AddValidationError(objectId, "Node behavior was changed. See inspector for details", Rendering.ShaderCompilerMessageSeverity.Warning);
}
}
public sealed override void UpdateNodeAfterDeserialization()
{
AddSlot(new Vector3MaterialSlot(
kOutputSlotId,
kOutputSlotName,
kOutputSlotName,
SlotType.Output,
Vector4.zero));
RemoveSlotsNameNotMatching(new[] { kOutputSlotId });
}
public override string GetVariableNameForSlot(int slotId)
{
return string.Format("IN.{0}", space.ToVariableName(InterpolatorType.ViewDirection));
}
public NeededCoordinateSpace RequiresViewDirection(ShaderStageCapability stageCapability)
{
return space.ToNeededCoordinateSpace();
}
public void GetCustomDeprecationMessage(out string deprecationString, out string buttonText, out string labelText, out MessageType messageType)
{
deprecationString = null;
buttonText = null;
labelText = null;
messageType = MessageType.Warning;
if (sgVersion == 0)
{
deprecationString = "The View Direction node has changed behavior in 2021.2. Please see documentation for more info.";
buttonText = "Dismiss";
labelText = "UPDATED: Hover for info";
messageType = MessageType.Info;
}
}
public string GetCustomDeprecationLabel()
{
return name;
}
}
}