ORK Framework Logo - RPG Editor for Unity
  • ORK 4 BETA
  • Features
  • Guide
    • Documentation
    • Tutorials
    • API
  • ORK 2
    • Tutorials
    • Plugins
    • API
  • Support
  • Forum
  • Get ORK

ORK 3 Documentation

  • Getting Started
    • Introduction
    • First Steps
    • Game Starters
    • Components Overview
    • Player/Camera Controls
    • Game Over
    • Support: Sending Test Projects
  • Editor
    • Editor Overview
    • Base/Control Section
    • Game Section
    • UI Section
    • Templates Section
    • Status Section
    • Inventory Section
    • Combatants Section
    • Battles Section
  • Features
    • Animations
    • Areas & Teleports
    • Combatant Triggers
    • Control Maps
    • Difficulties
    • Factions
    • Formations
    • Formula Nodes
    • Logs
    • Loot
    • Move AI
    • Quests
    • Research Trees
    • Schematic Nodes
    • Shortcut Slots
  • Status System
    • Status Values
    • Status Effects
    • Attack/Defence Modifiers
    • Abilities
    • Combatants
    • Classes
    • Status Bonuses
    • Status Conditions
  • Inventory System
    • Inventory System Overview
    • Currencies
    • Items
    • Equipment
    • AI Behaviours/Rulesets
    • Crafting Recipes
    • Shops
  • Battle System
    • Battle Systems
    • Adding Battles to Scenes
    • Calculating Action Results
    • Battle Menus
    • Battle AI
    • Battle AI Nodes
    • Battle Ranges
    • Battle Camera
    • Target Selection
    • Battle Spots
    • Battle Texts
    • Battle End & Loot Dialogues
    • Action Combos
    • Damage Types
    • Cursor Prefab Components
    • Grid Battles
    • Adding Battle Grids to Scenes
    • Battle Grid Highlights
    • Battle Grid Formations
  • UI System
    • UI System Overview
    • Start Menu
    • Option Categories
    • Menu Screens
    • Notifications
    • Combatant Selections
    • Quantity Selections
    • Text Display Settings
    • Cursor Settings
    • Console (In-Game)
    • Menu Requirements
    • HUDs: Content Providers
    • HUDs: Conditions
    • HUDs: Click Actions
    • HUDs: Text Content
    • HUDs: Value Bar Content
    • HUDs: Status Values
    • HUDs: Status Effects
    • HUDs: Attack Modifiers
    • HUDs: Defence Modifiers
    • HUDs: Shortcuts
    • HUDs: Abilities
    • HUDs: Equipment
    • HUDs: Class Slots
    • HUDs: AI Behaviours
    • HUDs: AI Rulesets
    • HUDs: Quests
    • Timebar HUD
  • Scripting
    • Scripting Overview
    • Access Handler
    • Code Extensions
    • Custom Settings
    • Custom Targeting
    • Combatant Scripting
    • Custom Nodes
    • Custom Component Save Data

ORK 3 Tutorials

  • 2D RPG Quickstart
    • START 2D RPG Quickstart
    • 01 Initial Setup
    • 02 Player Setup
    • 03 Music & Scenes
    • 04 UI System Setup
    • 05 UI Boxes
    • 06 Flying Texts
    • 07 Status Values
    • 08 Status Effects
    • 09 First Abilities
    • 10 Fighter Setup
    • 11 First Enemies & Battle AI
    • 12 Battle System Setup
    • 13 Animating Battle Start and End
    • 14 Random Battles
    • 15 Animating Actions
    • 16 Player Battle HUD
    • 17 Elemental Attacks
    • 18 Animating More Actions
    • 19 Inventory & Loot
    • 20 Equipment
    • 21 Loot, Start Equipment & Viewers
    • 22 Magic Abilities
    • 23 Caster Setup
    • 24 More Enemies
    • 25 Start Menu & Save Games
    • 26 Menu Screens
    • 27 Interactions
    • 28 Item Collectors
    • END 2D RPG Quickstart
  • 3D RPG Quickstart
    • START 3D RPG Quickstart
    • 01 Initial Setup
    • 02 Player Setup
    • 03 Music & Scenes
    • 04 UI System Setup
    • 05 UI Boxes
    • 06 Flying Texts
    • 07 Status Values
    • 08 Status Effects
    • 09 First Abilities
    • 10 Fighter Setup
    • 11 First Enemies & Battle AI
    • 12 Battle System Setup
    • 13 Animating Battle Start and End
    • 14 Random Battles
    • 15 Animating Actions
    • 16 Player Battle HUD
    • 17 Elemental Attacks
    • 18 Animating More Actions
    • 19 Inventory & Loot
    • 20 Equipment
    • 21 Loot, Start Equipment & Viewers
    • 22 Magic Abilities
    • 23 Caster Setup
    • 24 More Enemies
    • 25 Start Menu & Save Games
    • 26 Menu Screens
    • 27 Interactions
    • 28 Item Collectors
    • END 3D RPG Quickstart
  • Status System Setup
    • START Status System Setup
    • 01 Status Values
    • 02 Status Development
    • 03 Attack/Defence Modifiers
    • 04 Status Effects
    • 05 Formulas
    • 06 Ability & Item Types
    • 07 Abilities Part 1: Attacks
    • 08 Abilities Part 2: Support & Sabotage
    • 09 Abilities Part 3: Elemental Magic
    • 10 Items
    • 11 Equipment Part 1: Slots & Slot Set Templates
    • 12 Equipment Part 2: Weapons
    • 12.5 (Optional) Equipment Part 2.5: Weapons
    • 13 Equipment Part 3: Shields, Armor & Accessories
    • 13.5 (Optional) Equipment Part 3.5: Shields, Armor & Accessories
    • 14 Equipment Part 4: Available Equipment Templates
    • 15 Loot
    • 16 Battle AIs
    • 17 Combatants Part 1: General Settings
    • 18 Combatants Part 2: Players
    • 19 Combatants Part 3: Enemies
    • 20 Combatant Groups
    • END Status System Setup
  • 3D RPG Playground
    • START 3D RPG Playground
    • 01 Player Setup
    • 02 Start Menu
    • 03 First Interaction
    • 04 Music
    • 05 Areas
    • 06 Collecting Items
    • 07 Displaying Equipment
    • 08 Combatant Prefabs, Icons & Portraits
    • 09 Combatant Animations
    • 10 Camera Positions
    • ANIM 01 Battle Start/End Schematics
    • ANIM 02 Use, Cast & Camera
    • ANIM 03 Abilities & Items
    • ANIM 04 Physical Attacks
    • ANIM 05 Special Actions
    • BATTLE 01 Battle Menu
    • BATTLE 02 Prepare for Battle
    • TURN 01 Turn Based Setup
    • TURN 02 Turn Order HUD
    • ATB 01 Active Time Setup
    • ATB 02 Cast Times
    • ATB 03 Timebar HUD
    • BATTLE 03 The First Battle
    • BATTLE 04 Hunting Move AI
    • BATTLE 05 Spawning Combatants
    • 11 Save Games
    • MENU 01 UI Boxes
    • MENU 02 Template HUDs
    • MENU 03 Overview Menu
    • MENU 04 Menu Screens
    • 12 Shop
    • BATTLE 06 Random Battles
    • DUNGEON 01 Enter the Dungeon
    • DUNGEON 02 The Trapdoor
    • DUNGEON 03 Enemies on Level 1 & 2
    • DUNGEON 04 Traps on Level 3
    • DUNGEON 05 Going Deeper
    • 13 Bestiary (+MENU+ANIM)
    • QUEST 01 Hunting Quests (+MENU)
    • QUEST 02 Guard NPC
    • QUEST 03 Forest Ruin Cheese
    • QUEST 04 Witch NPC with Cheese
    • QUEST 05 Quest Mark HUDs
    • 14 Research Trees (+MENU)
    • CRAFT 01 Crafting Materials
    • CRAFT 02 Crafting Recipes
    • CRAFT 03 Crafting Menu
    • CRAFT 04 Crafting Proficiency & Critical Crafting
    • CRAFT 05 Materials Loot
    • 15 Changing Choice Dialogue
    • 16 Follow Me!
    • BATTLE 07 Sequence Loot Dialogue
  • 3D Action RPG
    • START 3D Action RPG
    • 01 Status System Setup
    • 02 Player Setup
    • 03 Player Weapon
    • 04 Player Attacks
    • 05 Enemy: Chomper
    • 06 Chomper Attack
    • 07 Hit & Death
    • 08 HUDs
    • 09 Rolling on the Floor
    • 10 Enemy: Spitter
    • 11 Spit Attack
    • 12 Potion
    • 13 Grenade
    • 14 Item HUD
    • 15 Enemy: Grenadier
    • 16 Grenadier Melee Attacks
    • 17 Grenadier Flamethrower
    • 18 Item Drops
    • END 3D Action RPG
  • 2D Grid Battle RPG
    • START 2D Grid Battle RPG
    • 01 Player Setup
    • 02 Prefab & Music Setup
    • 03 Randomizing Combatants
    • 04 UI Setup
    • 05 Battle Start, End & Phase Schematics
    • 06 Battle System Setup
    • 07 Battle Grid Setup
    • 08 Grid Move
    • 09 Forest Battle Grid
    • 10 Battle AI
    • 11 Ability Ranges
    • 12 Death & Use Schematics
    • 13 Attack Schematic
    • 14 Shoot Schematics
    • 15 Battle Selection Interaction
    • END 2D Grid Battle RPG
  • Schematics
    • Simple Start Schematic
    • Battle Start Schematic
    • Battle End Schematic
    • Moving to Target and Back
    • Animating a Base Attack
    • Animating a Magic Ability
    • Animating Target Selection
    • Grid Movement
    • Open and Close UI Animations
    • Flying Text Mover
  • UI Setups
    • Unity UI: Initial Setup
    • Unity UI: TextMesh Pro Setup
    • Unity UI: UI Box
    • Unity UI: Flying Text
    • Unity UI: Dragging Notification
    • Unity UI: Canvas with Screen Space Camera
    • Unity UI: Interaction HUD
    • Unity UI: Simple Player HUD
    • Unity UI: Quest HUD
    • Unity UI: Battle Actions HUD
    • Unity UI: Shortcuts HUD
    • Unity UI: Currency HUD
    • Unity UI: Tooltip HUD
    • Unity UI: Control HUD
    • Unity UI: Attack Modifiers
    • Unity UI: Defence Modifiers
  • Gameplay Bits
    • 2.5D Setup
    • Body Part Weakpoint
    • Click Attack
    • Combining Input Origins
    • Combining Status Value Flying Texts
    • Fun With Flying Text
    • HUD Effects With Conditional Schematics
    • Inventory Containers
    • Local Multiplayer
    • Multi Interaction Controllers
    • Target Selection Lines
    • World Space HUD
    • World Space Dialogue
View Categories
  • Guide
  • ORK 3
  • ORK 3 Documentation
  • Battle System

Cursor Prefab Components

Learn more about using components on cursor prefabs.

Combatants and target selections can be highlighted using cursor prefabs – i.e. a prefab that’s placed on a highlighted combatant or at the position of a raycast (for raycast targeting).

These prefabs can use components (implementing different cursor prefab interfaces) to use the highlighted combatant or information about the selected action for different things, e.g. scaling the cursor prefab based on the combatant’s radius or the use range of an action.

The following interfaces are available:

  • ICombatantHighlightCursorPrefab
    Used for highlighting a combatant.
    Receives information about the highlighted combatant.
  • ITargetSelectionCursorPrefab
    Used for highlighting a selected target during the regular target selection.
    Receives information about the action, the action’s user and the selected target (the cursor is placed on).
  • ITargetRaycastCursorPrefab
    Used for highlighting the raycast targeting position.
    Receives information about the action and it’s user.

ORK comes with some default implementations for these interfaces, see below for the available variants.

Cursor prefabs can use multiple highlight components at the same time. The target selection can also mix combatant highlight and target selection components. When using multiple components, it’s best to use those components on child objects of the cursor prefab to prevent them from interfering with each other, e.g.:

  • Root
    The prefab’s root, no cursor component attached.

    • Combatant Highlight
      E.g. using the Radius Scale highlight to scale this child object based on the highlighted combatant’s radius.
    • Combatant Highlight
      E.g. using the Use Range Scale highlight to scale this child object based on the highlighted combatant’s current action use range.

You can find more detailed information about the interfaces – where they’re used, the available components (default implementations) and how to write your own implementations below.

Combatant Highlights #

The ICombatantHighlightCursorPrefab interface is used to highlight combatants and provides information of the highlighted combatant.

Used In #

It’s used by Prefab highlight types in:

  • Target Selection
    Highlights the selected target.
    This uses the Target Highlight settings in Battle > Target Settings.
    The target selection also uses ITargetSelectionCursorPrefab interface components.
  • Battle Menu: User Highlight
    Highlights the battle menu’s user.
  • Raycast Targeting: User Highlight
    Highlights the raycast target selection’s user.
  • Phase Battle System: Player Combatant Selection
    Highlighting the selected combatant when the player selects the next phase battle user.
    This uses the Target Highlight settings in Battle > Target Settings.

Available Components #

ORK comes with a few implementations for the combatant highlight components.

Radius Scale #

The Combatant Highlight: Radius Scale component scales the game object it’s attached to based on the radius of the highlighted combatant.

The radius of a combatant is defined by it’s Radius component.

E.g. here’s a sphere that’s scaled by the combatant’s radius:

Schematic #

The Combatant Highlight: Schematic component plays schematics when starting and stopping the highlight.

Use Range Scale #

The Combatant Highlight: Use Range Scale component scales the game object it’s attached to based on the use range of the currently selected action of the highlighted combatant.

The currently selected action means what’s currently highlighted/selected in the combatant’s battle menu, i.e. this is only used for player combatants selecting actions via battle menus.

The component automatically updates the scale when the selection changes – no selected action (or not using a use range) will use a scale of 0.

This component is best used by the battle menu’s or raycast targeting’s user highlight.

E.g. here’s a sphere that’s scaled by the use range:

Scripting #

Create a custom combatant highlight component by implementing the ICombatantHighlightCursorPrefab interface in a component (MonoBehaviours).

The interface features two functions that need to be implemented.

StartSelection Function #

The StartSelection function is called when the cursor is spawned/enabled and starts highlighting a combatant.

public void StartSelection(Combatant combatant)

The combatant is the highlighted combatant.

StopSelection Function #

The StopSelection function is called when the highlight is stopped.

public void StopSelection()

Use this function for any cleanup you need to do.

Example: Radius Scale #

This is the code for the radius scale component:

using UnityEngine;
using GamingIsLove.Makinom;
using System.Collections.Generic;

namespace GamingIsLove.ORKFramework.Components
{
    [AddComponentMenu("ORK Framework/Battle/Combatant Highlight: Radius Scale")]
    public class RadiusCombatantHighlightCursorPrefab : MonoBehaviour, ICombatantHighlightCursorPrefab
    {
        public virtual void StartSelection(Combatant combatant)
        {
            float radius = combatant.Object.Radius;
            if(radius > 0)
            {
                this.transform.localScale = new Vector3(radius, radius, radius);
            }
            else
            {
                this.transform.localScale = Vector3.zero;
            }
        }

        public virtual void StopSelection()
        {
            this.transform.localScale = Vector3.one;
        }
    }
}

For a more complex implementation, check out the use range scale component – it keeps track of the highlighted combatant and checks each frame if a change occured (updating the highlight in that case).

Target Selection Highlight #

The ITargetSelectionCursorPrefab interface is used to highlight a selected target and provides information of the highlighted combatant (i.e. the target), the target selection’s user and action.

Used In #

It’s used by Prefab highlight types in:

  • Target Selection
    Highlights the selected target.
    This uses the Target Highlight settings in Battle > Target Settings.
    The target selection also uses ICombatantHighlightCursorPrefab interface components.

Available Components #

ORK comes with a few implementations for the target selection highlight components.

Affect Range Scale #

The Target Selection Cursor: Affect Range Scale component scales the game object it’s attached to based on the affect range of the target selection’s action.

If the action doesn’t use an affect range, it’ll use a scale of 0.

E.g. here’s a sphere that’s scaled by the affect range (also uses the Radius combatant highlight from above):

Line #

The Target Selection Cursor: Line component uses a Line Renderer to show a line between user and target.

Schematic #

The Target Selection Cursor: Schematic component plays schematics when starting and stopping the highlight.

Scripting #

Create a custom target selection highlight component by implementing the ITargetSelectionCursorPrefab interface in a component (MonoBehaviours).

The interface features two functions that need to be implemented.

StartSelection Function #

The StartSelection function is called when the cursor is spawned/enabled and starts highlighting a combatant.

public void StartSelection(Combatant user, Combatant target, IShortcut shortcut)

The user is the target selection’s user.

The target is the highlighted combatant (i.e. the target of the target selection).

The shortcut is the action for which a target is selected – e.g. an AbilityShortcut for an ability or an ItemShortcut for an item.

StopSelection Function #

The StopSelection function is called when the highlight is stopped.

public void StopSelection()

Use this function for any cleanup you need to do.

Example: Affect Range Scale #

This is the code for the affect range scale component:

using UnityEngine;
using GamingIsLove.Makinom;
using System.Collections.Generic;

namespace GamingIsLove.ORKFramework.Components
{
    [AddComponentMenu("ORK Framework/Battle/Target Selection Cursor: Affect Range Scale")]
    public class AffectRangeScaleTargetSelectionCursorPrefab : MonoBehaviour, ITargetSelectionCursorPrefab
    {
        public virtual void StartSelection(Combatant user, Combatant target, IShortcut shortcut)
        {
            bool used = false;
            TargetSettings targetSettings = TargetSettings.Get(shortcut);
            if(targetSettings != null)
            {
                UseRange affectRange = targetSettings.affectRange.GetConditionalRange(
                    user, target, shortcut as IVariableSource);
                if(affectRange != null)
                {
                    float range = affectRange.GetRangeValue(user);
                    if(range > 0)
                    {
                        used = true;
                        this.transform.localScale = new Vector3(range, range, range);
                    }
                }
            }
            if(!used)
            {
                this.transform.localScale = Vector3.zero;
            }
        }

        public virtual void StopSelection()
        {
            this.transform.localScale = Vector3.one;
        }
    }
}

It’s a bit more complex than the combatant highlight example, as it needs to get it’s information from the provided action. However, the overall use is the same.

Target Raycast Highlight #

The ITargetRaycastCursorPrefab interface is used to highlight the current position of raycast targeting and provides information of the selection’s user and action.

Used In #

It’s only used by the Cursor Object of Target Raycast Settings, i.e. abilities or items using raycast targeting.

The default settings for all actions can be found in Battles > Target Settings, each ability/item can optionally use a custom setup.

Available Components #

ORK comes with a few implementations for the target raycast highlight components.

Affect Range Scale #

The Target Raycast Cursor: Affect Range Scale component scales the game object it’s attached to based on the affect range of the raycast target selection’s action.

If the action doesn’t use an affect range, it’ll use a scale of 0.

E.g. here’s a sphere that’s scaled by the affect range (and placed at the raycast’s position):

Line #

The Target Raycast Cursor: Line component uses a Line Renderer to create a line between the user and the raycasted position.

Schematic #

The Target Raycast Cursor: Schematic component plays schematics when starting and stopping the highlight.

Scripting #

Create a custom target raycast highlight component by implementing the ITargetRaycastCursorPrefab interface in a component (MonoBehaviours).

The interface features two functions that need to be implemented.

StartSelection Function #

The StartSelection function is called when the cursor is spawned/enabled and starts highlighting a combatant.

public virtual void StartSelection(Combatant user, BaseAction action)

The user is the target selection’s user.

The action is the action for which a target is selected – e.g. an AbilityAction for an ability or an ItemAction for an item.

StopSelection Function #

The StopSelection function is called when the highlight is stopped.

public void StopSelection()

Use this function for any cleanup you need to do.

Example: Affect Range Scale #

This is the code for the affect range scale component:

using UnityEngine;
using GamingIsLove.Makinom;
using System.Collections.Generic;

namespace GamingIsLove.ORKFramework.Components
{
    [AddComponentMenu("ORK Framework/Battle/Target Raycast Cursor: Affect Range Scale")]
    public class AffectRangeScaleTargetRaycastCursorPrefab : MonoBehaviour, ITargetRaycastCursorPrefab
    {
        public virtual void StartSelection(Combatant user, BaseAction action)
        {
            bool used = false;
            TargetSettings targetSettings = TargetSettings.Get(action);
            if(targetSettings != null)
            {
                UseRange affectRange = targetSettings.affectRange.GetConditionalRange(
                    user, user, action.Shortcut as IVariableSource);
                if(affectRange != null)
                {
                    float range = affectRange.GetRangeValue(user);
                    if(range > 0)
                    {
                        used = true;
                        this.transform.localScale = new Vector3(range, range, range);
                    }
                }
            }
            if(!used)
            {
                this.transform.localScale = Vector3.zero;
            }
        }

        public virtual void StopSelection()
        {
            this.transform.localScale = Vector3.one;
        }
    }
}

It works similar to the target highlight‘s affect range, but it get’s the affect range information from the provided action instead of the target selection’s shortcut.

Scripting
Table of Contents
  • Combatant Highlights
    • Used In
    • Available Components
      • Radius Scale
      • Schematic
      • Use Range Scale
    • Scripting
      • StartSelection Function
      • StopSelection Function
      • Example: Radius Scale
  • Target Selection Highlight
    • Used In
    • Available Components
      • Affect Range Scale
      • Line
      • Schematic
    • Scripting
      • StartSelection Function
      • StopSelection Function
      • Example: Affect Range Scale
  • Target Raycast Highlight
    • Used In
    • Available Components
      • Affect Range Scale
      • Line
      • Schematic
    • Scripting
      • StartSelection Function
      • StopSelection Function
      • Example: Affect Range Scale
Sitemap
  • ORK 4 BETA
  • Features
  • Showcase
  • Guide
    • Documentation
    • Tutorials
    • API
  • ORK 2 Hub
    • Tutorials
    • Plugins
    • API
  • Support
  • Forum
  • Get ORK
  • Contact
  • Blog
  • Makinom
  • gamingislove.com
Categories
  • News (73)
  • ORK 2 (137)
    • Tutorial (137)
      • Game tutorial (50)
      • Gameplay (32)
      • How-to (55)
  • Release (156)
Search

© 2015 Gaming is Love e.U.

Disclosure: This site may contain affiliate links, which means I may receive a commission if you click a link and purchase something that I have recommended. While clicking these links won’t cost you any money, they will help me fund my development projects while recommending great assets!