#include "ShaderApiReflectionSupport.hlsl" namespace ShaderFunctionReflectionStructExample { struct VertexData { float3 position; float3 normal; float3 tangent; }; /// /// SG.NodeReference.Struct.SetVertex.Example /// Set Vertex /// Vertex /// Node Reference/Struct /// Set Vertex /// Reference, Struct /// /// /// /// ObjectSpace /// /// /// /// ObjectSpace /// /// /// /// ObjectSpace /// /// /// Vertex Data /// ShaderFunctionReflectionStructExample /// UNITY_EXPORT_REFLECTION void SetVertex(float3 position, float3 normal, float3 tangent, out VertexData vertex) { vertex.position = position; vertex.normal = normal; vertex.tangent = tangent; } /// /// SG.NodeReference.Struct.GetVertex.Example /// Get Vertex /// Node Reference/Struct /// Get Vertex /// Reference, Struct /// /// /// Vertex Data /// ShaderFunctionReflectionStructExample /// UNITY_EXPORT_REFLECTION void GetVertex(VertexData vertex, out float3 position, out float3 normal, out float3 tangent) { position = vertex.position; normal = vertex.normal; tangent = vertex.tangent; } /// /// SG.NodeReference.Struct.PushVertex.Example /// Push Vertex /// Node Reference/Struct /// Push Vertex /// Reference, Struct /// /// /// Vertex Data /// ShaderFunctionReflectionStructExample /// UNITY_EXPORT_REFLECTION void Push(inout VertexData vertex, float amount) { vertex.position += vertex.normal * amount; } }