Purpose
Now “DataMono” characters are built by using bootstrappable data components for entities and no longer rely on AgentMono script, which reduces the number of necessary functions and decouples them from a single class.
How to Use
Each data component is handled by one or more different RIDE systems.
New bootstrappable entity components added for the following functions:
RideAgent
- Basic agent info such as name and team
- Handled by IAgentSystem
RideAgentMover
- Default RIDE IMover for agent movement and path calculation
- Implements either Unity or AStar navigation solution
- Handled by IMovementSystem
UnitBoost
- Handles speed multiplier (for functions like character sprinting)
- Handled by IMovementSystem for characters (could be expanded by future systems for vehicle use)
RideAgentAnimationController
- Sets up animations for characters
- Handled by IAnimationSystem
RideInventory
- Updated inventory/item system that now tracks both items, item status (ownership, stowage, equipped, etc.) and the “containers” that carry them. These conceptual containers could include representation of pockets, backpacks, ammunition boxes as well as character hands.
- Handled by IEquipmentSystem
RideEntityHitBox
- This component handles hit boxes and health status of the entity
- Will be expanded to be more customizable to include multiple hit boxes/areas with varying different levels of hit points and locations so it can be used on a variety of entity types including both characters and vehicles
- Handled by IAttackSystem
RideEntitySelector
- Handles the user selection interface with units (much like selecting units in an RTS)
- This component sets up the entity for selection for the RideEntitySelectorSystem
- Handled by ISelector (RideEntitySelectorSystem)
Camera
- Sets up cameras around an entity
- Allows for different types of camera configurations such as first-person and third-person (free-look and locked) views
- Handled by ICameraSystem
PlayerInputController
- An IInputController that handles user input
- Currently used by player controlled characters
- Handled by IInputSystem
RideAgentControllable
- An IInputControllable that receives input for characters
- Currently used by player controlled characters that receive input from a PlayerInputController and moves the character around
- Handled by IInputSystem
Scene Location & Name
Various DataMono counterparts to the original AgentMonoDataMono scenes now exist:
Assets/Ride/Examples/BattleDrills/BattleDrill_ReactToAmbush_DataMono.unity
Assets/Ride/Examples/Groups/ExampleGroupsDataMono.unity
Assets/Ride/Examples/MilitaryUnits/ExampleMilitaryUnitsDataMono.unity
Assets/Ride/Examples/Movement/ExampleMovementDataMono.unity
Assets/Ride/Examples/PlayerInputController/PlayerInputControllerDataMono.unity
How to Use
PrefabDataMono Entities
Pre-built PrefabDataMono entities can be found in the following location:
Assets/Ride_Art/Art/Characters/MiddleEast/RideEntities/
ResourceLoader Prefab
In order to instantiate any PrefabDataMono entity dynamically via code at run-time, ensure the necessary prefabs are added to the ResourceLoader prefab under the RideSystems prefab. Add a new Element entry in the Unit Prefabs section for each unit desired.