| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | // Amplify Shader Editor - Visual Shader Editing Tool// Copyright (c) Amplify Creations, Lda <info@amplify.pt>using System;using UnityEditor;using UnityEngine;namespace AmplifyShaderEditor{	[Serializable]	[NodeAttributes( "Bone Blend Indices" , "Vertex Data" , "Bone indices for skinned Meshes" )]	public sealed class BlendIndicesNode : VertexDataNode	{		private const string IncorrectUnityVersionMessage = "This info is only available on Unity 2019.1 or above.";		private const string StandardSurfaceErrorMessage = "This info is not available on standard surface shaders.";		protected override void CommonInit( int uniqueId )		{			base.CommonInit( uniqueId );			m_outputPorts[ 1 ].ChangeType( WirePortDataType.UINT , false );			m_outputPorts[ 2 ].ChangeType( WirePortDataType.UINT , false );			m_outputPorts[ 3 ].ChangeType( WirePortDataType.UINT , false );			m_outputPorts[ 4 ].ChangeType( WirePortDataType.UINT , false );			m_currentVertexData = GeneratorUtils.VertexBlendIndicesStr;			m_errorMessageTypeIsError = NodeMessageType.Error;		}		public override void OnNodeLogicUpdate( DrawInfo drawInfo )		{			base.OnNodeLogicUpdate( drawInfo );			if( UIUtils.CurrentWindow.OutsideGraph.IsStandardSurface )			{				if( !m_showErrorMessage )				{					m_showErrorMessage = true;					m_errorMessageTooltip = StandardSurfaceErrorMessage;				}			}			else			{				m_showErrorMessage = false;			}		}		public override string GenerateShaderForOutput( int outputId , ref MasterNodeDataCollector dataCollector , bool ignoreLocalVar )		{			string blendIndices = string.Empty;			if( dataCollector.MasterNodeCategory == AvailableShaderTypes.Template )			{				blendIndices = dataCollector.TemplateDataCollectorInstance.GetBlendIndices();				return GetOutputVectorItem( 0 , outputId , blendIndices );			}			return GenerateErrorValue( outputId );		}	}}
 |