C# 脚本与Unity Visual Scripting 交互,第一步(使用C# 脚本触发Script Graph的事件)(Custom Scripting Event)

写在前面

感谢Unity 川哥的帮助,解决了单独调用GameObject的需求


首先 需要在Unity 中创建一个自定义事件脚本(注释非常重要)

using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine;  /// <summary> /// UnitTitle 在Script Graph 中展示的名字 /// UnitCategory 在Script Graph 展示的目录层级 /// EventUnit<int> 泛型 int 是输出参数的类型 /// </summary> [UnitTitle("TestEvent")] [UnitCategory("Events\MyEvents")] public class TestEvent : EventUnit<int> {     /// <summary>     /// 定义参数输出     /// </summary>     [DoNotSerialize]     public ValueOutput result { get; private set; }// The Event output data to return when     protected override bool register => true;     /// <summary>     /// 其实     /// </summary>     /// <param name="reference"></param>     /// <returns></returns>     public override EventHook GetHook(GraphReference reference)     {         // 特别声明 如果不传递 gameObject 则调用时 会调用所有 Script Graph 使用的事件         return new EventHook(nameof(TestEvent),reference.gameObject);     }     /// <summary>     /// 定义函数 展示输出事件     /// </summary>     protected override void Definition()     {         base.Definition();         // 设置输出的类型和显示的名字         result = ValueOutput<int>("output");     }     /// <summary>     /// 设置参数传入流中     /// </summary>     /// <param name="flow"></param>     /// <param name="data"></param>     protected override void AssignArguments(Flow flow, int data)     {         flow.SetValue(result, data);     }  }

编写完成后记得保存代码,并且在项目设置中点击刷新一下Visual Scripting的Nodes

C# 脚本与Unity Visual Scripting 交互,第一步(使用C# 脚本触发Script Graph的事件)(Custom Scripting Event)

还记得在代码 写的目录和 名称吗

  • Events\MyEvents
  • TestEvent

C# 脚本与Unity Visual Scripting 交互,第一步(使用C# 脚本触发Script Graph的事件)(Custom Scripting Event)

 

C# 脚本与Unity Visual Scripting 交互,第一步(使用C# 脚本触发Script Graph的事件)(Custom Scripting Event)

成功添加了这个节点 输出目前是一个int 类型

C# 脚本与Unity Visual Scripting 交互,第一步(使用C# 脚本触发Script Graph的事件)(Custom Scripting Event)

为了让大家看的清楚一点 我输出了

C# 脚本与Unity Visual Scripting 交互,第一步(使用C# 脚本触发Script Graph的事件)(Custom Scripting Event)

编写一个触发脚本

C# 脚本与Unity Visual Scripting 交互,第一步(使用C# 脚本触发Script Graph的事件)(Custom Scripting Event)

 

成功触发了,这时候我就可以愉快的将 Unity的连连看和自己写的逻辑联系在一起了

C# 脚本与Unity Visual Scripting 交互,第一步(使用C# 脚本触发Script Graph的事件)(Custom Scripting Event)

 

发表评论

评论已关闭。

相关文章