

首先需要两个自定义节点
1.三角形平铺定制节点
如果是老版本shader graph 直接创建脚本继承 CodeFunctionNode
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor.ShaderGraph;
using System.Reflection;
[Title("Distance", "Triangle")]
public class TriangleNode : CodeFunctionNode
{
public TriangleNode()
{
name = "Triangle";
}
protected override MethodInfo GetFunctionToConvert()
{
return GetType().GetMethod("TriangleNode_Function",
BindingFlags.Static | BindingFlags.NonPublic);
}
public override void GenerateNodeFunction(FunctionRegistry registry, GraphContext graphContext, GenerationMode generationMode)
{
registry.ProvideFunction("fmod", s => s.Append(@"
float fmod(float a, float b)
{
return a - floor(a / b) * b;
}
"));
base.GenerateNodeFunction(registry, graphContext, generationMode);
}
static string TriangleNode_Function(
[Slot(0, Binding.MeshUV0)] Vector2 UV,
[Slot(1, Binding.None, 4f, 0f, 0f, 0f)] Vector1 Scale,
[Slot(10, Binding.None)] out Vector1 Triangle, // 三角形
[Slot(11, Binding.None)] out Vector2 TrianglePosition // 三角形
)

本文详细介绍如何在Unity ShaderGraph中创建自定义节点,包括三角形平铺节点和范围扭曲节点的具体实现方法,通过示例代码展示如何使用C#编写自定义节点功能。
最低0.47元/天 解锁文章
1356

被折叠的 条评论
为什么被折叠?



