๐๏ธ Overview
The core of the library is the BaseSteeringSystem. It loads a SteeringSystemAsset, which declaratively defines how entities should behave through queries and behaviors which are implemented as parallel jobs. The system then runs these jobs to determine where each entity wants to go. Each entity participating in the simulation must be initialized with SteeringEntityAuthoring.
๐๏ธ BaseSteeringSystem
BaseSteeringSystem is a base class inheriting from SystemBase, which can be inherited to create a steering system. It is configurable by SteeringSystemAsset, which can be edited through the editor. The asset contains definition of which jobs, using which queries, to run. The base class is responsible for scheduling these jobs and queries and passing data between them.
๐๏ธ SteeringSystemAsset
Instance of SteeringSystemAsset is loaded by the implementation of BaseSteeringSystem and defines it's behavior. The system is defined declaratively from queries and behaviors.
๐๏ธ SteeringEntityAuthoring
Any entity to be used with the framework should use SteeringEntityAuthoring. It adds components which are used internally by the framework. The components are:
๐๏ธ BaseBehaviorParams
This struct is passed into all behaviors. It has information about the entities matched by the BaseSteeringSystem's main entity query. There are several arrays, each containing EntityCount elements (with the exception of ArchetypeChunks and ChunkBaseIndexArray). Each array element has some information about an entity at index i in the query. The BaseBehaviorParams struct contains these fields: