The OVER Visual Scripting system allows for simplification of the OVER Experience creation process, by delivering to the end user a visual tool to create experience logic, fully compatible with the OVER App.
Similar to the OVER Component Node System, the main building block is represented by OverNodes, a visual representation of a code block responsible for delivering a specific functionality.
The OverScriptManager is a Component responsible for managing all of the OverScripts present in Scene.
To add an OverScriptManager to a project, simply create a new GameObject and add a new OverScriptManager Component to it.
The OverScriptManager contains a list of global variables. Global means that all the OverScripts present in Scene can access and edit them.
Once a variable is defined, it can be directly added to the Graph as a Node and used in Visual Scripting.
The bottom section of the OverScriptManager will be show a list of Errors, to help the User in the debugging of the Project.
Note: in order for the OverScriptManager to work properly in app, it needs to be a child of an OvrAsset
In order to use the OverGraph, you need to assign an OverScript to a GameObject and assign the GameObject to the OverGraph.
The purpose of an OverScript is to provide a bridge between the logic, described by the OverGraph, and Unity itself, which is responsible for compiling and executing it.
To add an OverScript to the project, simply create a new GameObject and add a new OverScript Component to it.
To add an OverGraph to this script, the User can either create a new OverGraph and drag and drop it in the OverGraph field, or by pressing the Create New Script button. This will automatically create and assign a new OverGraph.
An integral component of the script management system is the OverScriptManager, which needs to be added in the Scene in order to unlock all the features of the scripting system.
Each OverScript contains a list of local variables. Local means that only this specific script can access and edit them.
For global variables, i.e. variables shared between OverScripts, these must be entered within the OverScript Manager
Once a variable is defined, it can be directly added to the Graph as a Node and used in Visual Scripting.
Note: in order for the OverScript to work properly in app, it needs to be a child of an OvrAsset
The OverNode is the foundation of the Visual Scripting system: responsible for the implementation of a specific functionality, in order to be used to create more complex logic.
An OverNode is responsible for a single function within the execution flow.
Each node is tied to another and is created with a set of Ports, whose goal is to carry on the information (tied to a specific data type).
There are several types of Ports involved:
Name | Description |
---|---|
A node can be connected by clicking an output port. This will create a new Edge, to be dragged and dropped to the input port of the next node.
Note: in order for a Connection between ports to be established there must be compatibility between the ports. While dragging an Edge, in order to simplify the process, the non-compatible end ports will be turned off visually, thus becoming non-interactive.
The OverNodes can be classified into two categories:
Flow Nodes: provided with Flow Ports, they are used to link the node directly to the Unity runtime execution flow and propagate it further to the following nodes
Plain Nodes: these don't possess Flow Ports, so they can't directly access the execution flow. Instead, they deliver the information "on-demand" (i.e. it processes the information only when another node, tied to it, asks it to).
Each node inside a graph is represented by a small panel, with a Header part (to the top) and a Body.
The Header contains the following information:
The Body of a node serves as a container for the Input (shown in the left side of the node) and the Output (right side) Ports. Each port is defined by a name and the associated data type.
In addition, a node can contain a certain number of editable fields, to further customize its behaviour.
In order to use the to build complex logic, the OVER SDK provides the user with a visual tool, called .
An is the Unity Asset in which you can create your visual scripting flow.
To create an , right-click in Project view in Unity, then Create > Over SDK > . By selecting it, the user can open the Inspector and edit this information, such as the Name of the Graph.
Each can be opened by double-clicking on it, or by pressing the Open button on the top right corner of the Inspector view.
Once opened, the User will be presented with a window, resembling a blackboard. In the bottom left corner, the name of the Graph (edited via Inspector) will be visible.
To add a new node from scratch, right-click anywhere inside the window and a search window will appear.
This could either be navigated by mouse, by expanding each collection inside the sub-folders, or by typing in the search bar.
In any case, nodes are represented by the search results with an icon, which specifies the category of the node to be added.
By clicking on a search result, a node will appear in the same position as the mouse's right click.
The creation of a new Node can also be accomplished by dragging a port: by releasing it in the empty space the search window will appear. In this case, only the nodes compatible with the dragged port will be visible and selectable.
Name | Description |
---|---|
Icon
The Image that represents the type of the component, manipulated by the node
Title
The name of the node involved, each title by itself provides hints to the user about the node's functionality
Flow Ports
If the node is used to build an execution flow, an input/output port is shown
Input
Port used to input information into the node.
Output
Port used to output information, processed by the node, to the next node.
Flow
Port used to carry on the execution flow, it outputs a specific kind of information