Skill Tree
Skills for Game Creator allows you to add a skill tree system to your game.
There are two skill tree prefabs, one for the automatic generation of a skill tree based on the types and skills one relies on, and a manual one. Both feature the following functionality:
  • Context Menu support: Unlock a skill, add or remove it to/from the skill bar
  • Hover over informations: Hover over a skill to see informations about it like the required level
  • Skill Bar Assignments via keyboard
You can find the prefabs under Plugins/MiTschMRStudios/Skills/Resources/SkillTree
A skill tree is built like this:
  • Root
    • Header
    • ContainerSkills
      • SkillTreeContentAutomatical
        • SkillType
          • SkillHolder
            • Skill1
            • Skill2
            • Skill...
      • Skill Bar
A skill type contains so called skill holders, which contain all skills that directly rely on each other and are displayed horizontally in one row. Let's see it in action:
When you compare the hierarchy with the skill tree in the above picture, you will immediately notice what belongs to what.

Automatic Skill Tree

The automatic skill tree, as already mentioned, uses the type of the skill and the ones it relies on to set it up. The prefab consists of three parts, the root gameobject with the SkillTreeUIManagerAutomatical component on it and the SkillTreeContentAutomatical prefab with the SkillTreeItemsListAutomatical component on it.

Skill Tree Root

The SkillTreeUIManagerAutomatical component has seven settings and references you can set:
Setting
Description
Skill Bar Elements
References the Skill Bar where you can assign skills in the UI via keys
Skill Points Left
Gameobject with a text component on it that displays the amount of skill points left
Skills Content
Gameobject that will have the skills structure below it
Skill Distance From Top
Vertical distance from the top (bottom of the header)
Distance Between Skill Types
Vertical distance between each type section of skills
Skill Type Size
Defines how big the initial cell for a skill type section is
Skill Type Prefab
Prefab that should be spawned as a holder of all skills of this type. Has a vertical layout component on it for structuring purposes

Skill Tree Content

This gameobject has the component SkillTreeItemsListAutomatical on it, which has the following settings and references:
Setting
Description
Skills Container
The Rect Transform component of this gameobject. Will spawn the skill holders below it.
Prefab Skill
Prefab of the skill gameobject
Prefab Skill Connector Enabled
Prefab for the enabled skill connector
Prefab Skill Connector Disabled
Prefab for the disabled skill connector
Distance Between Skills In Line
Distance between the skills in one row, meaning the ones that rely on each other. In the middle of them the skill connectors will be spawned.
Prefab Skill Holder
Prefab for the skill holder
I recommend to play with the settings so you get a feeling for it.

Skill Element

A skill is the heart component of a skill tree. It has many settings and references:
Setting
Description
Skill Icon Enabled
References an image component used for the icon when the skill is unlocked
Skill Icon Disabled
References an image component used for the icon when the skill is locked
Tooltip Icon
References an image component used for the skill icon in the tooltip
Tooltip Name
References a text component where the name of the skill will be
Tooltip Description
References a text component where the description of the skill will be shown
Tooltip Level Required Value
References a text component where the required level for the skill will be
Tooltip Skill Points Required Value
References a text component where the required skill points for the skill will be
Tooltip Skill State Value
References a text component where the current state of the skill will be (locked / unlocked)
Tooltip Skill State Value Color Locked
The color in which the referenced text component of the tooltip skill state value is painted when the skill is locked
Tooltip Skill State Value Color Unlocked
The color in which the referenced text component of the tooltip skill state value is painted when the skill is unlocked
Image Locked
References an image component that shows if a skill is locked
Image Unlocked
References an image component that shows if a skill is unlocked
Skill Transform
The Rect Transform component of this gameobject
Prefab Context Menu
Prefab of the context menu
Event On Hover Enter
Defines the logic that will be executed when you start hovering over the skill
Event On Hover Exit
Defines the logic that will be executed when you exit hovering over the skill
The automatic skill tree has the limitation that it displays skills always in one row, even if you have multiple skills one relies on. It takes the first one and attaches it to this one. If you want skills to rely on multiple skills, you better use the manual skill tree described below.

Manual Skill Tree

For more control over the look, use the manual skill tree. Let's see which settings they have.

Skill Tree Root

The root gameobject has only three references to set:
Setting
Skill Bar Elements
References the Skill Bar where you can assign skills in the UI via keys
Skill Points Left
Gameobject with a text component on it that displays the amount of skill points left
Skills Content
Gameobject that will have the skills structure below it
Floating Skill
Image component of the gameobject used for the drag/drop functionality

Skill Tree Content

This gameobject only needs the SkillTreeItemsListManual component on it and is then already set up. Every skill that you add below is detected automatically.

Skill Element

The manual skill element has four settings more than the automatic one:
Setting
Description
Skill Tree UI Manager
The root object of the manual skill tree (automatically set in the automatic one)
Skill
The skill it represents
Skill Connector Enabled
References the enabled skill connector used between two skills
Skill Connector Disabled
References the disabled skill connector used between two skills