Unity Visual Scripting 常见操作

创建自定义节点

创建一个简单的自定义节点

1.创建c#脚本

using Unity.VisualScripting;
using UnityEngine;

public class MyNode : Unit
{
   protected override void Definition() //The method to set what our node will be doing.
   {
   }
}

2.配置项目设置以重新生成节点库

1)Edit > Project Settings

2)选择Visual Scripting,点击Regenerate Nodes
在这里插入图片描述
3.打开一个Script Graph,添加你的节点
在这里插入图片描述

为你的节点添加port

1.修改c#脚本

using Unity.VisualScripting;
using UnityEngine;
using System;

[UnitCategory("FirstLevel/SecondLevel")]
public class MyNode : Unit
{
   public ControlInput inputTrigger;
   public ControlOutput outputTrigger;
   [DoNotSerialize]
   public ValueInput myValueA;

   [DoNotSerialize]
   public ValueInput myValueB;

   [DoNotSerialize]
   public ValueOutput result;
   private string resultValue;
   protected override void Definition() //The method to set what our node will be doing.
   {
      //The lambda to execute our node action when the inputTrigger port is triggered.
      inputTrigger = ControlInput("inputTrigger", (flow) =>
      {
         //Making the resultValue equal to the input value from myValueA concatenating it with myValueB.
         resultValue = flow.GetValue<string>(myValueA) + flow.GetValue<string>(myValueB) + "!!!";
         return outputTrigger;
      });
      outputTrigger = ControlOutput("outputTrigger");

      myValueA = ValueInput<string>("myValueA", "Hello");
      myValueB = ValueInput<string>("myValueB", String.Empty);
      result = ValueOutput<string>("result", (flow) => resultValue);
   }
}

建立State machine

1.新建State Graph

1)在project面板中,Create > Visual scripting > State Graph

2)取名EnemyStateGraph

2.打开上一步建立的State Graph(EnemyStateGraph)

3.创建一个state

1)创建一个Script State

鼠标右键 > Create Script State
在这里插入图片描述
ps:更多信息见 Create a new state | Visual Scripting | 1.7.8

2)创建剩下两个Script State
在这里插入图片描述
3)双击start,打开start状态

4)添加功能
在这里插入图片描述
4.创建state之间的transition

1)右键start状态,选择Make Transition
在这里插入图片描述
ps:更多信息见Create a transition between states | Visual Scripting | 1.7.8

2)双击Transition,打开Transition

3)添加状态转换条件
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_32740177/article/details/126777591