This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Unit

Craft the characters of the world.

Overview

The Unit System.


Set Up

Refer to the Unit Set Up Guide in Get Started section.


Features

1 - Unit Manager

Image showing the TargetingHandler component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API

// GameManagerGlobalEventBus
void OnSetupManagers() override;
void OnShutdownManagers() override;
void OnStartupComplete() override;

void OnEnterStandby() override;
void OnExitStandby() override;

// UnitManagerIncomingEventBus
void RequestSpawnNewUnit(AZ::EntityId callingEntityId, AzFramework::Scripts::SpawnableScriptAssetRef unitPrefab, AZ::EntityId spawnParentEntityId) override;

bool CheckIsUnit(AZ::EntityId unitId) override;

Extending Targeting Handler

2 - Unit Controllers

Image showing the TargetingHandler component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality

Player Controller

AI Controller


Setting Up Your Targeting Handler


API

// UnitControllerIncomingEventBus
void PossessUnit(AZ::EntityId targetUnit) override;

void DePossessUnit() override;

AZ::EntityId GetUnit() override { return possessedUnit; };

AZStd::string GetUniqueName() override { return uniqueName; };

// UnitManagerOutgoingEventBus
void ReturnNewUnit(AZ::EntityId caller, AZ::EntityId newUnit) override;

// Local Methods
virtual void PostActivateProcessing();

virtual void SetUniqueName();

Extending Targeting Handler

3 - Input Data

Image showing the TargetingHandler component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API


Extending Targeting Handler

3.1 - Input Reactor

Image showing an InputReactor component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API


Extending Targeting Handler

3.2 - Player Input Reader

Image showing a Player Input Reader component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API


Extending Targeting Handler

4 - Units

Image showing the TargetingHandler component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler

Unit Collider Configuration

Image showing the collision layers used for a unit collider, as seen in the Entity Inspector.

If you have not set up your PhysX Collision Layers or Groups yet. Refer to the Setting Up Your Project Environment guide.


API

// UnitIncomingEventBus
void Possess(AZ::EntityId possessingController) override;

void DePossess() override;

AZ::EntityId GetController() override { return owningController; };

AZStd::string GetUniqueName() override { return uniqueName; };

// Local Methods
virtual void SetUniqueName();

Extending Targeting Handler

4.1 - Movement

Overview

Setup

Refer to the Unit Set Up Guide in Get Started section.

Features

4.1.1 - Mover Context

Image showing the TargetingHandler component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API

// UnitOutgoingEventBus
void UnitPossessed(AZ::EntityId possessingController) override;

// MoverContextIncomingEvents
void ChangeMovementMode(AZStd::string targetMoveMode) override;

void RevertToLastMovementMode() override;

void ChangeRotationMode(AZStd::string targetRotateMode) override;

void RevertToLastRotationMode() override;

void ChangeGroundingMode(AZStd::string targetRotateMode) override;

void RevertToLastGroundingMode() override;

void SetMoveInputAxis(AZStd::string axisName, float axisValue) override;

AZ::Vector2* GetMoveInputAxis() override { return &rawMoveInput; };

AZ::Vector3* GetModifiedMoveInputAxis() override { return &modifiedMoveInput; };

AZ::Vector3* GetGroundMoveInputAxis() override { return &groundedMoveInput; };

void SetGroundNormal(AZ::Vector3 newNormal) override;

AZ::Vector3* GetGroundNormal() override { return &groundNormal; };

AZ::Vector3* GetSlopeDirection() override { return &slopeDir; };

float* GetSlopeAngle() override { return &slopeAngle; };

float* GetMaxWalkAngle() override { return &maxWalkAngle; };

void SetMoverState(AZStd::string stateName, AZ::u32 stateValue) override;

AZ::u32 GetMoverState(AZStd::string stateName) override;

// Local Methods
virtual void ModifyInputAxis();

virtual void GroundInputAxis();

Extending Targeting Handler

4.1.2 - Movers

Image showing a Mover component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API

// MoverContextOutgoingEventBus
void MovementModeChanged(AZStd::string modeName) override;
void RotationModeChanged(AZStd::string modeName) override;

//Local Methods
virtual void ToggleMovement(bool on);
virtual void ToggleRotation(bool on);

virtual void HandleMovement();
virtual void HandleRotation();

virtual bool CheckCanOperate();

Extending Targeting Handler

4.1.2.1 - 3D Free Mover

Image showing a 3D Free Mover component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API


Extending Targeting Handler

4.1.2.2 - 3D Strafe Mover

Image showing the TargetingHandler component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API


Extending Targeting Handler

4.1.2.3 - Slide Mover

Image showing the TargetingHandler component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API


Extending Targeting Handler

4.1.2.4 - Side Scroller Mover

Image showing the TargetingHandler component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API


Extending Targeting Handler

4.1.2.5 - Grid Step Mover

Image showing the TargetingHandler component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API


Extending Targeting Handler

4.1.3 - Grounders

Image showing a Grounder component, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API

// MoverContextOutgoingEventBus
void GroundingModeChanged(AZStd::string modeName) override;
        
// Local Methods
virtual void ToggleGrounder(bool on);
virtual void HandleGrounding();
virtual void GroundingStateChange(AZ::u32 newState);

virtual bool CheckCanOperate();

Extending Targeting Handler

4.1.3.1 - 3DFree Grounder

Image showing a 3D Physics Ray Grounder, as seen in the Entity Inspector.

Targeting Handler Overview

Functionality


Setting Up Your Targeting Handler


API


Extending Targeting Handler