52 lines
1.7 KiB
C#
52 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
using XNode;
|
|
|
|
namespace Stary.Evo.StoryEditor
|
|
{
|
|
/// <summary>
|
|
/// 空节点
|
|
/// (可选择应用哪种节点)
|
|
/// </summary>
|
|
[Serializable, CreateNodeMenu("创建空节点", order = 0)]
|
|
public class SelectionNode : FlowNode
|
|
{
|
|
/// <summary>
|
|
/// 创建新的空节点
|
|
/// </summary>
|
|
/// <param name="graph">所在的块</param>
|
|
/// <param name="name">节点名称</param>
|
|
/// <param name="position">节点位置</param>
|
|
/// <param name="prePorts">节点前部连接</param>
|
|
/// <param name="nextPorts">节点后部连接</param>
|
|
public static SelectionNode Create(NodeGraph graph, string name = null, Vector2 position = default,
|
|
List<NodePort> prePorts = null, List<NodePort> nextPorts = null)
|
|
{
|
|
var node = Create<SelectionNode>(graph, name, position, prePorts, nextPorts);
|
|
return node;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 创建剧本段落
|
|
/// </summary>
|
|
[BoxGroup("Option", order:20, showLabel:false)]
|
|
[Button("剧本段落")]
|
|
public void ChooseScriptParagraph()
|
|
{
|
|
// 记录动作缓存
|
|
#if UNITY_EDITOR
|
|
UnityEditor.Undo.RecordObject(graph, "Delete Node");
|
|
#endif
|
|
|
|
// 在本节点位置创建剧本段落节点
|
|
var node = ScriptParagraphNode.Create(graph, position: position);
|
|
GiveEnterPortToOtherPort(node.GetInputPort("enter"), true);
|
|
GiveExitPortToOtherPort(node.GetOutputPort("exit"), true);
|
|
|
|
// 移除本节点
|
|
DestroySelf();
|
|
}
|
|
}
|
|
} |