-
Couldn't load subscription status.
- Fork 0
CM.SequenceManager
The role of the SequenceManager is to arrange a sequence of tasks that different packages can perform without requiring direct communication between them.
Package dependencies: CM.ApplicationManagement, CM.DataManagement
(May not be 100% accurate)
- Multiple SequenceTables per sequence manager.
- Each SequenceTable consists of multiple sequence and argument nodes. Each sequence leads to an argument, and each argument leads to one or multiple sequences.
- SequenceTables can be deactivated, which prevents them from updating.
- Sequence tables can contain multiple parameters of various types that can be used by sequences or arguments and can be dynamically changed.
- The collection of sequences and arguments in a SequenceManager can be expanded to incorporate functionalities from other packages.
- Sequences and arguments are grouped based on the package they are associated with. It is important to note that sequences or arguments from a specific package cannot be utilized in scenes that do not utilize that same package.
- Add
CM.SequenceManagerto ApplicationManagerSetting (CoreMaker/ApplicationManagerSetting) (It should load before any packages that uses it).- Put CM_DataManagerGameObject in
\Packages\CoreMaker\Prefabs, in the scene that needs to use it.- To incorporate the appropriate SequenceManagerAsset into the relevant scene within SequenceManagerSelector (
CoreMaker/ApplicationManagerSetting) and select the save button.
- Components
- Graph view
- Save the current SequenceManager Asset.
- Restore SequenceManager Asset to its previously saved state.
- Name of the current SequenceManager Asset.
- The SequenceManager Asset can be modified in the this location.
- Sequence Tables.
- String parameters.
- Integer parameters.
- Float parameters.
- Boolean parameters.
- Order of tables.
- Select the table to edit.
- Delete the table.
- Name of table.
- State of table(Active or Inactive)
- Add a new table.
- Delete the parameter.
- Name of the parameter.
- Value of the parameter.
- Add a new parameter.
- Start argument node, The sequence will begin at this node and this node cannot be deleted.
- Sequence Nodes, Actions will occur within this node, which can be created by right-clicking and selecting the "Create Node" option from the context menu.
- Argument Nodes, Logic nodes that usually have and condition to either continue or choose between output options. can be created by right-clicking and selecting the "Create Node" option from the context menu.
- Groups, can be created by right-clicking and selecting the "Create Node" option from the context menu. Nodes can be added or removed from a group by first holding the shift button and drag and dropping the item into the groups.
- Type of the node.
- Input. Each input point can accommodate multiple inputs.
- Output. Each output point can only have one output.
- Name of the node witch can be edited.
- Content of the node.
Create node classes based on the example below, ensure that the classes are placed inside the package's assembly instead of the SequenceManagers assembly:
[SequenceManagerElement(typeof(CustomSequence), SequenceType.Sequence)] public class CustomSequence : Sequence { //Custom variables private object _exampleVariables; //Mandatory methods public override IEnumerator Invoke() { //This method will be invoked when this node is activated. //The action of the sequence must be performed at this point. } public override Sequence MakeSequence(SequenceManagerElementData elementData) { //The class will be initialized at this point. //Each initialized class will receive its data from `elementData`. //Note that a new instance of this class must be created and returned. return new CustomSequence(); } //Custom methods private void _exampleMethod(){} }[SequenceManagerElement(typeof(CustomArgument), SequenceType.Argument)] public class CustomArgument : Argument { //Custom variables private object _exampleVariables; //Mandatory methods public override void EnterArgument() { //Once the argument is activated, this method will be called. } public override IEnumerator Invoke() { //This method will be called after the `EnterArgument` methods and will remain active as long as the class is active. //While sequence nodes are automatically updated, in arguments, we should manually update the table. //To update the table, you can utilize the `SequenceManager.UpdateTable()` function. The name of the table can be accessed through `this.TableName`, and the nodes that the argument can connect to can be obtained from `this.TargetSequenceName[i]`. SequenceManager.UpdateTable(TableName, TargetSequenceName[i]); //Even if you plan to have the arguments function execute instantly, it is advisable to allow it to take at least one frame to complete in order to avoid overflowing and ensure proper processing. yield return null; } public override void ExitArgument() { //Once the argument is deactivated, this method will be called. } public override Argument MakeArgument(SequenceManagerElementData elementData) { //The class will be initialized at this point. //Each initialized class will receive its data from `elementData`. //Note that a new instance of this class must be created and returned. return new CustomArgument(); } //Custom methods private void _exampleMethod(){} }
- Nodes can access dynamic parameters through
SequenceManager.CurrentSequenceManager. Additionally, you can access the functionality of theSequenceManagerclass through its static methods. I recommend reviewing theSequenceManagerclass in the Classes details section for more information on its capabilities and usage.Now we need to create the UI of nodes so we can use our nodes in the SequenceManagers menu item.
[Sequence("NodesName", "GroupsName")] public class ExampleSequenceNode : SequenceParentNode { //Mandatory Varables private Port _inputPort; private Port _outputPort; //Custom variables private VisualElement _exampleVisualElement; //Mandatory Mehods public override void CreateNode(SequenceNodeData sequenceNodeData) { //The two following values must be manually provided, or the node will not function properly. NodeData = sequenceNodeData; NodeData.TypeName = "ExampleSequenceNode"; //Input ports must be placed within the `inputContainer` following the pattern below. _inputPort = SequenceManagerEditorUtilities.SM_Port(this, "PortsName", PortType.SequenceInput); inputContainer.Add(_inputPort); //Output ports must be placed within the `outputContainer` following the pattern below. _outputPort = SequenceManagerEditorUtilities.SM_Port(this, "Output", PortType.SequenceOutput); outputContainer.Add(_outputPort); //Create additional UI elements such as text fields, toggles, and more, and add them to the `extensionContainer` as follows. //Use static methods in `SequenceManagerEditorUtilities` to create UI elements. //Utilize `this.NodeData` to assign values to UI elements. //After adding elements to containers, the following methods should be called, RefreshExpandedState(); } //Do not modify the following methods. public override void SetNode( SequenceManagerGraphView sequenceManagerGraphView) { if (NodeData.Port != -1) { sequenceManagerGraphView.Add(_outputPort.ConnectTo((Port)sequenceManagerGraphView.ArgumentParentNodes[NodeData.Port].inputContainer[0])); } } //This method is invoked when the Save button is pressed. public override SequenceNodeData SaveNode() { //The position of the node must be manually specified. NodeData.Vector = GetPosition().position; //Assign data from UI elements back to this.NodeData and return it. return NodeData; } public override SequenceManagerElementData CreateSequence() { //Create a SequenceManagerElementData and set its values from this.NodeData. //Please note that this data is the same data used to create the sequence in its `MakeSequence` method. SequenceManagerElementData exampleSequenceData = new SequenceManagerElementData; //Please make sure to specify the type of sequence that this node represents. exampleSequenceData.Type = typeof(ExampleSequence).ToString() return exampleSequenceData; } //Custom methods private void _exampleMethod(){} }[Argument("NodesName", "GroupsName")] public class ExampleArgumentNode : ArgumentParentNode { //Mandatory Varables private Port _inputPort; //Argument can have multiple outputs private Port _outputPortOne; private Port _outputPortTwo; private Port _outputPortThree; //Custom variables private VisualElement _exampleVisualElement; //Mandatory Mehods public override void CreateNode(ArgumentNodeData argumentNodeData) { //The two following values must be manually provided, or the node will not function properly. NodeData = argumentNodeData; NodeData.TypeName = "ExampleArgumentNode"; //Input ports must be placed within the `inputContainer` following the pattern below. _inputPort = SequenceManagerEditorUtilities.SM_Port(this, "PortsName", PortType.ArgumentInput); inputContainer.Add(_inputPort); //Output ports must be placed within the `outputContainer` following the pattern below. _outputPortOne = SequenceManagerEditorUtilities.SM_Port(this, "PortsOne", PortType.ArgumentOutput); _outputPortTwo = SequenceManagerEditorUtilities.SM_Port(this, "PortsTwo", PortType.ArgumentOutput); _outputPortThree = SequenceManagerEditorUtilities.SM_Port(this, "PortsThree", PortType.ArgumentOutput); outputContainer.Add(_outputPortOne); outputContainer.Add(_outputPortTwo); outputContainer.Add(_outputPortThree); //Create additional UI elements such as text fields, toggles, and more, and add them to the `extensionContainer` as follows. //Use static methods in `SequenceManagerEditorUtilities` to create UI elements. //Utilize `this.NodeData` to assign values to UI elements. //After adding elements to containers, the following methods should be called, RefreshExpandedState(); } //Modify the following method based on the number of output ports you have. public override void SetNode( SequenceManagerGraphView sequenceManagerGraphView) { if (NodeData.Ports.Count != 0) { if (NodeData.Ports[0] != -1) { sequenceManagerGraphView.Add(_outputPortOne.ConnectTo((Port)sequenceManagerGraphView.SequenceParentNodes[NodeData.Ports[0]].inputContainer[0])); } if (NodeData.Ports[1] != -1) { sequenceManagerGraphView.Add(_outputPortTwo.ConnectTo((Port)sequenceManagerGraphView.SequenceParentNodes[NodeData.Ports[1]].inputContainer[0])); } if (NodeData.Ports[2] != -1) { sequenceManagerGraphView.Add(_outputPortThree.ConnectTo((Port)sequenceManagerGraphView.SequenceParentNodes[NodeData.Ports[2]].inputContainer[0])); } } } //This method is invoked when the Save button is pressed. public override SequenceNodeData SaveNode() { //The position of the node must be manually specified. NodeData.Vector = GetPosition().position; //Assign data from UI elements back to this.NodeData and return it. return NodeData; } public override SequenceManagerElementData CreateArgument() { //Create a SequenceManagerElementData and set its values from this.NodeData. //Please note that this data is the same data used to create the sequence in its `MakeArgument` method. SequenceManagerElementData exampleArgumentData = new SequenceManagerElementData; //Please make sure to specify the type of argument that this node represents. exampleArgumentData.Type = typeof(ExampleArgument).ToString() return exampleArgumentData; } //Custom methods private void _exampleMethod(){} }
All arguments must inherent from this class.
Type Name Description public stringArgumentNameContains the name of the argument. Will be set automatically on startup. public stringTableNameThe table in which this argument is contained. Will be set automatically on startup. public string[]TargetSequenceNameTarget sequence Nodes. Will be set automatically on startup.
Type Name Description public abstract voidEnterArgument()Will be called when the node is activated, either by updating or starting the table. public abstract IEnumeratorInvoke()It will be activated after 'EnterArgument()' is called and will be deactivated when the node is deactivated, either by updating to a new node or halting the table. public abstract voidExitArgument()Will be called when the node is deactivated, either by updating to a new node or halting the table. public abstract ArgumentMakeArgument(SequenceManagerElementData elementData)Will be called on startup to create the node. All sequences must inherent from this class.
Type Name Description public stringSequenceNameContains the name of the sequence. Will be set automatically on startup. public stringTableNameThe table in which this sequence is contained. Will be set automatically on startup. public stringTargetArgumentNameTarget argument Node. Will be set automatically on startup.
Type Name Description public abstract IEnumeratorInvoke()It will be activated when the node is activated. public abstract SequenceMakeSequence(SequenceManagerElementData elementData)Will be called on startup to create the node. Attributes:
SerializableIt is used to set the data of SequenceManager's nodes that will be retrieved on startup.
Type Name Description public stringTypeType of the node. public stringNameName of the node. public stringTargetNameThe names of the nodes that this node will lead to. public stringStringsA string array where string variable in the node can be retrieved from. public stringIntsA integer array where integer variable in the node can be retrieved from. public stringFloatsA float array where float variable in the node can be retrieved from. public stringBoolsA boolean array where boolean variable in the node can be retrieved from. Contains data of a SequenceManager state machine.
Type Name Description internal stringTableNameName of the table. internal Dictionary<string, Sequence>SequencesAll sequence nodes that are contained within a table. internal Dictionary<string, Argument>ArgumentsAll arguments nodes that are contained within a table. internal boolIsTableActiveIf table is active, if not the table wont be started. internal boolIsTableHaltedIf the table is halted, when set to true, the table won't be updated. internal stringCurrentArgumentNameThe name of the current active argument in the table. Attributes:
SerializableIt is used to set the data of SequenceManager's tables that will be retrieved on startup.
Type Name Description public stringTableNameName of the table. public SequenceManagerElementData[]SequenceDataData for sequence nodes. public SequenceManagerElementData[]ArgumentDataData for argument nodes. public boolIsTableActiveIf table is active. public stringCurrentArgumentNameThe name of the default current argument node. Inherits from:
MonoBehaviourThe main function of the sequence manager.
Type Name Description private static SequenceManager_currentSequenceManagerSingleton pattern. public static SequenceManagerCurrentSequenceManagerSingleton pattern. public Dictionary<string, SequenceTable>SequenceTablesAll tables in the sequence manager. public Dictionary<string, string>StringParametersString parameters that can be accessed via nodes and external classes, use for more complex functionalities. public Dictionary<string, float>FloatParametersFloat parameters that can be accessed via nodes and external classes, use for more complex functionalities. public Dictionary<string, int>IntParametersInteger parameters that can be accessed via nodes and external classes, use for more complex functionalities. public Dictionary<string, bool>BoolParametersBoolean parameters that can be accessed via nodes and external classes, use for more complex functionalities.
Type Name Description public static voidUpdateTable(string tableName, string targetName)Used for easier access to the _updateTable()function.private void_updateTable(string tableName, string targetName)Used to update a specific sequence node in a specific table within the sequence manager if table is not halted. public static voidSetArgument(string tableName, string targetName)Used for easier access to the _SetArgument()function.private void_SetArgument(string tableName, string targetName)Used to change the current argument in a specific sequence node. public static voidStartCurrentArgument(string tableName)Used for easier access to the _startCurrentArgument()function.private void_startCurrentArgument(string tableName)Used to start a halted table if it is active. public static voidHaltCurrentArgument(string tableName)Used for easier access to the _haltCurrentArgument()function.private void_haltCurrentArgument(string tableName)Used to halt an specific table. public static voidStartAllCurrentArguments()Used for easier access to the _startAllCurrentArguments()function.private void_startAllCurrentArguments()Used to start all halted tables if they are active. public static voidHaltAllCurrentArguments()Used for easier access to the _haltAllCurrentArguments()function.private void_haltAllCurrentArguments()Used to halt all tables. Attributes:
SerializableIt is used to set the data of SequenceManager that will be retrieved on startup.
Type Name Description public stringNameName of the SequenceManager. public SequenceTableData[]SequenceTableDataAll tables contained within this SequenceManager. public string[]StringParameterValuesValues of all string parameters. public string[]StringParameterNamesName of all string parameters. public int[]IntParameterValuesValues of all integer parameters. public string[]IntParameterNamesName of all integer parameters. public float[]FloatParameterValuesValues of all float parameters. public string[]FloatParameterNamesName of all float parameters. public bool[]BoolParameterValuesValues of all boolean parameters. public string[]BoolParameterNamesName of all boolean parameters.
Type Name Description public voidSetSequenceManager()Imports the data contained within this class into the current SequenceManager. Inherits from:
ScriptableObjectAttributes:
SerializableContains all SequenceManager data for all the scenes. It is used to retrieve the current SequenceManager for the current scene.
Located in the resources folder.
Type Name Description [SerializeField] private string[]_scenesList of all scenes. [SerializeField] private SequenceManagerData[]_sequenceManagersList of all SequenceManagers. public Dictionary<string, SequenceManagerData>SelectorUsed for easier access.
Type Name Description public voidSetup([NotNull] string[] scenes, [NotNull] SequenceManagerData[] sequenceManagers)Used to setup the class. Inherits from:
AttributeAttributes:
AttributeUsage(AttributeTargets.Class)Used to create attributes of the nodes, making them easier to use.
Type Name Description private SequenceType_sequenceTypeUsed to specify the sequence type. private Type_typeUsed to specify the type of the node by utilizing the typeof()method.internal static Dictionary<string, Type>SequenceTypesName of all sequence nodes with their types. internal static Dictionary<string, Type>ArgumentTypesName of all argument nodes with their types.
Type Name Description internal static voidInternalize()Internalize the static variables. Inherits from:
DataManagerMainObject
CM.DataManagementImplementation.Inherits from:
MonoBehaviourAttributes:
RequireComponent(typeof(SequenceManagerSaveData), typeof(SequenceManager))
CM.ApplicationManagementImplementation.Used to specify the type of nodes.
Members Description Sequence Node is a sequence. Argument Node is a argument.
Utilities that create UI elements and automatically apply stylesheets.
Type Name Description private static StyleSheet_styleSheetStyleSheet of UI elements.
Type Name Description internal static TextFieldSM_TextField(string value)Returns a Text Field element. internal static IntegerFieldSM_IntField(int value)Returns a Integer Field element. internal static FloatFieldSM_FloatField(float value)Returns a Float Field element. internal static ToggleSM_Toggle(bool value)Returns a Toggle element. internal static ObjectFieldSM_ObjectField(string label, Object value, Type type)Returns a Object Field element. internal static LabelSM_Label(string value)Returns a Label element. internal static ButtonSM_Button(string label, Action clickEvent)Returns a Button element. internal static DropdownFieldSM_DropdownField(List<string> choices, int index, Func<string, string> funk)Returns a Dropdown element. internal static ScrollViewSM_ScrollView(ScrollViewMode scrollViewMode)Returns a ScrollView container. internal static FoldoutSM_Foldout(string label)Returns a Foldout container. internal static PortSM_Port(Node node, string label, PortType portType)Returns a Port element. Inherits from:
NodeAll Argument nodes must inherit from this class.
Type Name Description public ArgumentNodeDataNodeDataThe data of the node should be manually set.
Type Name Description public abstract voidCreateNode(ArgumentNodeData argumentNodeData)Will be called when the node is created. public abstract voidSetNode(SequenceManagerGraphView sequenceManagerGraphView)This method will be used to set the saved data of an asset, specifically for ports. public abstract ArgumentNodeDataSaveNode()Will be called when the asset is being saved. It returns a ArgumentNodeDataobject to be stored in the asset.public abstract SequenceManagerElementDataCreateArgument()Will be called when the asset is being saved. It will be used to create argument nodes when the game starts. Inherits from:
NodeAll Sequence nodes must inherit from this class.
Type Name Description public SequenceNodeDataNodeDataThe data of the node should be manually set.
Type Name Description public abstract voidCreateNode(SequenceNodeData sequenceNodeData)Will be called when the node is created. public abstract voidSetNode(SequenceManagerGraphView sequenceManagerGraphView)This method will be used to set the saved data of an asset, specifically for ports. public abstract SequenceNodeDataSaveNode()Will be called when the asset is being saved. It returns a SequenceNodeDataobject to be stored in the asset.public abstract SequenceManagerElementDataCreateSequence()Will be called when the asset is being saved. It will be used to create sequence nodes when the game starts. Inherits from:
NodeAttributes:
System.SerializableThis class helps to store and retrieve data in Argument Nodes for the purpose of saving and loading assets.
Type Name Description public stringTypeNameType of the node witch uses this class. public stringNodeNameName of the node within a table, will be set automatically. public intNodeIndexIndex of the node within a table, will be set automatically. public intGroupIndexThe index of the group to which this node belongs will be set automatically. If the value is -1, it indicates that the node is not part of any group. public Vector2VectorThe location of the node must be set manually inside the SaveNode()method of nodes that use it. You can retrieve the position of the node usingGetPosition().positionand assign it to a variable for saving.public List<int>PortsThe indices of ports that are connected to, must be set manually in the SetNode()method of each node that uses this class. Following the pattern mentioned in the example above.public List<string>StringArrayTo store string parameters of nodes in the asset and retrieve them when the asset is loaded. public List<int>IntArrayTo store integer parameters of nodes in the asset and retrieve them when the asset is loaded. public List<float>FloatArrayTo store float parameters of nodes in the asset and retrieve them when the asset is loaded. public List<bool>BoolArrayTo store boolean parameters of nodes in the asset and retrieve them when the asset is loaded. Inherits from:
NodeAttributes:
System.SerializableThis class helps to store and retrieve data in Sequence Nodes for the purpose of saving and loading assets.
Type Name Description public stringTypeNameType of the node witch uses this class. public stringNodeNameName of the node within a table, will be set automatically. public intNodeIndexIndex of the node within a table, will be set automatically. public intGroupIndexThe index of the group to which this node belongs will be set automatically. If the value is -1, it indicates that the node is not part of any group. public Vector2VectorThe location of the node must be set manually inside the SaveNode()method of nodes that use it. You can retrieve the position of the node usingGetPosition().positionand assign it to a variable for saving.public intPortThe index of the port that is connected to, must be set manually in the SetNode()method of each node that uses this class. Following the pattern mentioned in the example above. If the value is -1, it indicates that the node is not connected to other node.public List<string>StringArrayTo store string parameters of nodes in the asset and retrieve them when the asset is loaded. public List<int>IntArrayTo store integer parameters of nodes in the asset and retrieve them when the asset is loaded. public List<float>FloatArrayTo store float parameters of nodes in the asset and retrieve them when the asset is loaded. public List<bool>BoolArrayTo store boolean parameters of nodes in the asset and retrieve them when the asset is loaded. Inherits from:
GraphViewThe graph view represents the sequence tables in a visual manner.
Type Name Description public List<SequenceParentNode>SequenceParentNodesAll sequence nodes contained within the table. public List<ArgumentParentNode>ArgumentParentNodesAll argument nodes contained within the table. public List<Group>GroupsAll groups nodes contained within the table.
Type Name Description public SequenceManagerGraphViewDataSaveGraph()Will be called when the asset is being saved. It returns a SequenceManagerGraphViewDataobject to be stored in the asset.public SequenceTableDataCreateSequenceTable(string tableName, bool isTableActive)The returned sequence table will be used by the sequence manager. public override List<Port>GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)his sets the compatibility for ports, preventing incompatible ports from connecting to each other. public voidCreateGroup(string groupName, Vector2 location)This is used to create new groups and also to recreate the groups that were previously saved in the asset when the asset is loaded. public voidCreateSequenceNode(SequenceNodeData sequenceNodeData)This is used to create new sequence node and also to recreate the sequence node that were previously saved in the asset when the asset is loaded. public voidCreateArgumentNode(ArgumentNodeData argumentNodeData)This is used to create new argument node and also to recreate the argument node that were previously saved in the asset when the asset is loaded. public voidCreateStartNode(ArgumentNodeData argumentNodeData)This is used to set the start argument node. Attributes:
System.SerializableThis class helps to store and retrieve data in GraphViews for the purpose of saving and loading assets.
Type Name Description public stringGraphNameThe name of the table. public List<string>GroupsThe names of the groups contained within this class. public List<Vector2>GroupVectorThe location of the groups contained within this class. public List<SequenceNodeData>SequenceNodeDatasThe Sequence Nodes contained within this class. public List<ArgumentNodeData>SequenceNodeDatasThe Argument Nodes contained within this class. Inherits from:
ScriptableObjectAttributes:
CreateAssetMenu, System.SerializableThe asset containing the SequenceManagers data that is saved for use by both the editor and the game component.
Type Name Description [SerializeField] public SequenceManagerDataDataWill be loaded and utilized when it is selected to be used by a scene. [SerializeField] public stringNameThe names of the SequenceManager. public List<SequenceManagerGraphViewData>GroupVectorThe data for the graph views that will be utilized by the editor. public List<bool>GraphViewStateListThe state for the graph views. public List<string>StringParameterNamesThe names of the string parameters. public List<string>StringParameterValuesThe values of the string parameters. public List<string>IntParameterNamesThe names of the integer parameters. public List<int>IntParameterValuesThe values of the integer parameters. public List<string>FloatParameterNamesThe names of the float parameters. public List<float>FloatParameterValuesThe values of the float parameters. public List<string>BoolParameterNamesThe names of the boolean parameters. public List<bool>BoolParameterValuesThe values of the boolean parameters. Inherits from:
EditorWindowThe editor window to create the SequenceManager.
Type Name Description public SequenceManagerAssetCurrentAssetThe current asset being edited. private List<SequenceManagerGraphView>_graphViewsGraph views in the current current asset. private List<bool>_isChangedIf the graph with the same index has been edited. private int_currentGraphViewIndexindex of the currently selected graph. -1 if nothing is selected. private VisualElement_graphViewContainerVisualContainer for GraphViews. private VisualElement_toolContainerVisualContainer for other controls. private string_nameName of the current asset. private ScrollView_sequenceTablesContainerVisualContainer for SequenceTables. located within the '_toolContainer'. private ScrollView_stringParametersContainerVisualContainer for string parameters. located within the '_toolContainer'. private ScrollView_intParametersContainerVisualContainer for integer parameters. located within the '_toolContainer'. private ScrollView_floatParametersContainerVisualContainer for float parameters. located within the '_toolContainer'. private ScrollView_boolParametersContainerVisualContainer for boolean parameters. located within the '_toolContainer'.
Type Name Description private void_setGraph(int index)Set the current graph. private void_createTableContainer()Creates the '_graphViewContainer'. private void_addTable()Adds a table. private void_removeTable(int index)Removes the a SequenceTable. private void_updateTableOrder()Updates the order in which the tables have been ordered. private void_createParametersContainer()Creates the parameter containers. private void_addParameter(int parameterIndex)Adds a parameter . private void_removeParameter(int parameterIndex, int index)Removes a parameter. private void_loadAsset()Loads an assets and sets it as the CurrentAsset.private void_saveAsset()Saves the CurrentAsset.Groups nodes and makes them accessible for the editor.
Type Name Description internal static Dictionary<string, Type>SequenceTypesAll sequences that have been added to this class using the 'SequenceAttribute'. internal static Dictionary<string, string>SequenceGroupsGroup of sequences. internal static Dictionary<string, Type>ArgumentTypesAll argument that have been added to this class using the 'ArgumentAttribute'. internal static Dictionary<string, string>ArgumentGroupsGroup of arguments. internal static List<string>GroupsList of all groups. private static bool_isInternalizedIs the class internalized.
Type Name Description internal static voidInternalize()Initializes this class. Inherits from:
AttributeAttributes:
AttributeUsage(AttributeTargets.Class)Argument attribute that is used to add argument nodes to the editor.
Type Name Description internal stringNameName of the node. internal stringGroupNameGroup of the node. Inherits from:
AttributeAttributes:
AttributeUsage(AttributeTargets.Class)Sequence attribute that is used to add argument nodes to the editor.
Type Name Description internal stringNameName of the node. internal stringGroupNameGroup of the node. Inherits from:
ScriptableObject, ISearchWindowProviderCreate a search window to select nodes.
Type Name Description private SequenceManagerGraphView_graphViewCurrent GraphView. private SequenceManagerMenuItem_menuItemMenu Item with this window is attached to. private Texture2D_emptyIconAn empty image.
Type Name Description public voidInitialize(SequenceManagerGraphView sequenceManagerGraph, SequenceManagerMenuItem sequenceManagerMenuItem)Initializes this class. public List<SearchTreeEntry>CreateSearchTree(SearchWindowContext context)Creates a search tree to be used by the SearchWindow. public boolOnSelectEntry(SearchTreeEntry searchTreeEntry, SearchWindowContext context)Will be called when a node is selected. Inherits from:
EditorWindowCreate a search window to set SequenceManager's data to a scene so that it can be used in-game..
Type Name Description private ScrollView_selectorContainerContainer that contains the primary functions. private SequenceManagerSelector_selectorReference to the class that selects the current data to be used in the appropriate scene. private List<int>_effectedIndexesIndex of the scene which has been set or altered. private string[]_scenesThe name of scenes. private SequenceManagerData[]_sequenceManagerDatas'_sequenceManagerDatas' of each seane.
Type Name Description private ObjectField_createListElement(string scene, int index)Creates the '_selectorContainer'. private void_Save()Saves the changes. The type of ports used by 'SequenceManagerEditorUtilities' to determine the way in which the node must be created.
Members Description ArgumentInput Input ports for argument nodes. ArgumentOutput Output ports for argument nodes. SequenceInput Input ports for sequence nodes. SequenceOutput Output ports for sequence nodes.
(May not be 100% accurate)




