【a】可视化剧本编辑器 10.StoryEditor
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user