WorldPosInputsNode.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // Amplify Shader Editor - Visual Shader Editing Tool
  2. // Copyright (c) Amplify Creations, Lda <info@amplify.pt>
  3. using System;
  4. using UnityEngine;
  5. namespace AmplifyShaderEditor
  6. {
  7. [Serializable]
  8. [NodeAttributes( "World Position", "Surface Data", "World space position" )]
  9. public sealed class WorldPosInputsNode : SurfaceShaderINParentNode
  10. {
  11. protected override void CommonInit( int uniqueId )
  12. {
  13. base.CommonInit( uniqueId );
  14. m_currentInput = SurfaceInputs.WORLD_POS;
  15. m_drawPreviewAsSphere = true;
  16. m_previewShaderGUID = "70d5405009b31a349a4d8285f30cf5d9";
  17. InitialSetup();
  18. }
  19. public override void DrawProperties() { }
  20. public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalVar )
  21. {
  22. if ( dataCollector.IsTemplate )
  23. {
  24. string varName = dataCollector.TemplateDataCollectorInstance.GetWorldPos();
  25. return GetOutputVectorItem( 0, outputId, varName );
  26. }
  27. string worldPosition = GeneratorUtils.GenerateWorldPosition( ref dataCollector, UniqueId );
  28. return GetOutputVectorItem( 0, outputId, worldPosition );
  29. }
  30. }
  31. }