Databrain Documentation
databrain.ccDiscord
  • Welcome
  • Installation / Update
  • Interface
  • DataObject Property Drawer
    • No GUI Implemented - FIX
  • Getting started
  • Guides
    • Add data objects
    • Add data objects at runtime
    • Get initial data
    • Get/Set runtime data
    • Serialize DataObjects
    • Runtime Save & Load
    • Use custom serializer
    • Import
    • Search
    • Custom GUI
    • Custom GUI with Odin Inspector
    • Hierarchy Template
  • Separate DataObjects
  • Using Version Control
  • Attributes
    • DataObject attributes
    • Field attributes
  • API
    • DataLibrary
    • DataObject
  • FAQ
    • Databrain - FAQ
  • Add-ons
    • Events
    • Blackboard
    • Logic
      • Interface
      • Create Graph
      • Execute graph
      • Control flow execution in groups
      • Custom Nodes
        • Asynchronous execution
        • Node Attributes
      • Scene Components
      • Graph Events
      • Finite State Machine
        • Create custom Actions
        • Examples
        • State Machine Nodes
    • Stats
      • Achievements
      • Modifiers
      • Values
      • Progressions
      • Components
      • Nodes
    • Progress
      • Progress Settings
      • Progress Graph
      • Progress Resources
      • Runtime UI Setup
      • API
        • ProgressController
    • Techtree (LEGACY)
      • Techtree Manager
      • Techtree
      • TechtreeResource
      • Techtree UIBuilder
        • Custom Techtree Node Button
        • Tooltip
      • API
    • Localization
      • Localization Manager
      • Localization
      • Examples
      • Components
      • Import
      • API
    • Inventory
      • Getting started
      • Demo
      • Data setup
        • Inventories
        • Slot IDs
        • Items
          • Blueprints
          • Item rarities
        • Money
        • Loot tables
        • Events
      • Runtime UI
        • Setup
    • Dialogue
      • Getting Started
        • Demo
      • Dialogue runtime setup
      • Actors
        • Emotions
      • Localization
      • Audio
      • Animation
      • Variables
      • Custom theme
      • Import
      • Nodes
      • API
        • DialogueController
        • IDialogueUIControl
  • Changelog
    • Databrain - Changelog
      • 1.4.0
      • 1.3.2
      • 1.3.1
      • 1.3.0
      • 1.2.0
      • 1.1.0
      • 1.0.10
      • 1.0.9
      • 1.0.8
      • 1.0.7
      • <= 1.0.6
Powered by GitBook
On this page
  • Global Properties
  • Create new node
  • Connect Nodes
  • Node Properties
  • Custom Node
  1. Add-ons
  2. Progress

Progress Graph

PreviousProgress SettingsNextProgress Resources

Last updated 7 months ago

The progress graph editor allows you to visually design your progression/techtree graphs with a node editor.

Global Properties

  • Small Nodes: If enabled, the editor shows smaller nodes

  • Canvas Width & Height: Defines the node canvas size, this values are being used when building the runtime UI. The appropriate UI RectTransform parent container (node canvas) will be set to this size.

Create new node

  1. First, create a new Progress Graph object. Select the Progress Graph type in the hierarchy and click on + Create

  2. You can now see an empty node canvas. Right click on it and select Progress Node.

Connect Nodes

  • To connect nodes, simply right click on the first node, select "Connect" and then click on another node you want to connect to.

Node Properties

A Progress node has multiple properties by default. A Progress Node is a DataObject which can be derived from to add additional custom data fields if you like.

  • Research State: The research state of this node (Locked, Unlocked, InProgress, Complete)

  • Research Time: The time it takes to research this node

  • Research Costs: The costs in ProgressResources it takes to be able to research this node

Custom Node

You can create custom progress nodes by simply deriving from the ProgressNode class. This is an example custom node code:

public class CustomProgressNode : ProgressNode
{
    public float additionalFields;
    
    // Called when this node research has been started
    public override void ResearchStarted()
    {
        Debug.Log("my custom research has started");
    }
    
    // Called when research has been completed
    public override void ResearchCompleted()
    {
        Debug.Log("my custom research is completed");
    }
}