summaryrefslogtreecommitdiff
path: root/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Constants/ShaderVariables/ConstVecShaderVariable.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Constants/ShaderVariables/ConstVecShaderVariable.cs')
-rw-r--r--Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Constants/ShaderVariables/ConstVecShaderVariable.cs39
1 files changed, 39 insertions, 0 deletions
diff --git a/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Constants/ShaderVariables/ConstVecShaderVariable.cs b/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Constants/ShaderVariables/ConstVecShaderVariable.cs
new file mode 100644
index 00000000..d74d8a5f
--- /dev/null
+++ b/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Constants/ShaderVariables/ConstVecShaderVariable.cs
@@ -0,0 +1,39 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using UnityEngine;
+using System;
+namespace AmplifyShaderEditor
+{
+ [Serializable]
+ public class ConstVecShaderVariable : ShaderVariablesNode
+ {
+ [SerializeField]
+ protected string m_value;
+ protected override void CommonInit( int uniqueId )
+ {
+ base.CommonInit( uniqueId );
+ ChangeOutputProperties( 0, " ", WirePortDataType.FLOAT4 );
+ AddOutputPort( WirePortDataType.FLOAT, "0" );
+ AddOutputPort( WirePortDataType.FLOAT, "1" );
+ AddOutputPort( WirePortDataType.FLOAT, "2" );
+ AddOutputPort( WirePortDataType.FLOAT, "3" );
+ }
+ public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
+ {
+ base.GenerateShaderForOutput( outputId, ref dataCollector, ignoreLocalvar );
+ switch ( outputId )
+ {
+ case 0: return m_value;
+ case 1: return ( m_value + ".x" );
+ case 2: return ( m_value + ".y" );
+ case 3: return ( m_value + ".z" );
+ case 4: return ( m_value + ".w" );
+ }
+
+ UIUtils.ShowMessage( UniqueId, "ConstVecShaderVariable generating empty code", MessageSeverity.Warning );
+ return string.Empty;
+ }
+
+ }
+}