In this tutorial we’ll set up a turn order HUD.
A turn order HUD displays each combatant in it’s own individual HUD – we’ll use an UI layout to arrange them in a horizontal list.
HUD Prefab Setup #
First, we’ll create the prefab for our HUD, we’ll simply display the combatant’s portrait and use a box background image.
Use the scene hierarchy context menu to create a new HUD: Makinom > HUD > HUD (i.e. without any layout)
Let’s adjust the HUD game object to our needs.
Rect Transform #
Since we’ll use an UI layout to position the individual HUDs, we’ll only set the width and height and can ignore the positioning.
- Width
Set to 150. - Height
Set to 75.
Image #
Add an Image component to the HUD game object. We’ll use it to add a background image (box) to the HUD.
- Source Image
Select the BoxBeige sprite (or any other you like).
Rect Mask 2D #
Add a Rect Mask 2D component to the HUD game object. This’ll hide parts of the HUD that’ll otherwise exceed it’s bounds – our portrait would otherwise be larger than the actual HUD.
- Padding
Set all to 3.
I.e. left, right, top and bottom. - Softness
Set to X=5, Y=5.
Portrait #
Now, we’ll add a portrait content child object to the HUD game object.
We’ll use the scene hierarchy context menu on the HUD game object: Makinom > HUD > Content > Portrait Content (Sprite)
We’re using the Sprite variant due to our portraits being sprites.
Rect Transform #
The Portrait Content child object should be placed like this:
- Pos X
Set to 0. - Pos Y
Set to -37.5. - Width
Set to 150. - Height
Set to 150.
HUD Portrait Content #
This component handles which portrait type will be displayed.
- Portrait Type
Select Default.
UI Portrait #
This component manages which components are used to display the portrait (e.g. sprite or texture).
We need to disable setting the sprite to it’s native size, adjusting to the size of the game object instead.
- Sprite Native Size
Disable this setting.
Image #
We want the portrait to keep it’s aspect ratio – to have access to this setting, we need to first select any sprite (not sliced like the box) in the Source Image field.
Afterwards, change this setting:
- Preserve Aspect
Enable this setting.
Remove the sprite afterwards by selecting the None asset in the Source Image field.
The finished HUD will look something like this (e.g. when using one of the portrait sprites for testing):
Create Prefab #
Create a prefab out of the HUD game object, e.g. naming it Turn Order Portrait HUD.
If you’ve done the setup in one of your game’s scenes, don’t forget to remove the canvas (with the HUD game object).
Turn Order HUD Setup #
Now, we’ll set up our UI layout and turn order HUD.
UI Layout #
Open the Makinom editor and navigate to UI > UI Layouts, we’ll add a new layout.
UI Layout Settings #
- Name
Set to Turn Order HUDs. - Layout Type
Select List.
List Layout Settings #
- Anchor
Select Upper Left. - Padding
Set to X=100, Y=100, Z=0, W=0. - Spacing
Set to 10. - List Fill
Select Horizontal. - Fill Anchor
Select Upper Left.
Move Settings #
- Use Move
Enable this setting. - Time
Set to 0.2. - Interpolation
Select Quadratic > Quadratic In + Out.
HUD #
Next, we’ll set up the HUD. Navigate to UI > HUDs, add a new HUD and change the following settings.
HUD Settings #
- Name
Set to Turn Order. - HUD Type
Select Turn Order. - Auto Display
Enable this setting.
Turn Order Settings #
- Add Selecting Combatant
Enable this setting.
The combatant who’s currently selecting actions will also be listed. - Multi-Box Layout
Select UI Layout. - UI Layout
Select Turn Order HUDs (the UI layout we just created). - Shared Layout
Enable this setting.
It’s usually a good idea to used shared layouts – in case the UI layout is used for multiple things, all content will share the same instance, being arranged together.
Display Conditions #
A Turn Order type HUD will only be displayed during running Turn Based battles, so we could just keep the display conditions as they are.
We’ll set up our Show Battle HUD game state check anyway, maybe we want to hide the battle HUDs in the future (e.g. during a ‘cinematic’ attack, or something like that).
Click on Add Game State.
- Condition Type
Select Game State. - Game State
Select Show Battle HUD. - Check State
Select Active.
Unity UI #
- UI Layer
Select HUDs. - HUD Prefab
Select the Turn Order Potrait HUD prefab we just created.
Schematics #
I’m also using the move from right and move to left schematics from the UI animations schematics to animate the HUD.
- Own Schematics
Enable this setting. - Before Open Schematic
Select the UIMoveFromRightFadeIn schematic. - Wait
Enable this setting. - Before Close Schematic
Select the UIMoveToLeftFadeOut schematic. - Wait
Enable this setting.
Save Changes #
And that’s it!
Don’t forget to save your changes by clicking on Save Settings at the bottom of the editor.
Next, we’ll set up our first battle!