How to use collider data in a job

I have an ai that uses line of sight to get a collider.

I would like to get data from the collider i.e is this a weapon to pick up, is this the player, is an enemy standing close to an explosive etc.

However I’m not sure how to get data inside the job system (get component)

How would I be able to get information about a collider inside a job system?

You can only get it outside the job and pass it into the job. And you can only do that with physics data that are value types (not classes), or you need to convert it to a custom struct.

If you want to interact with or query physics during a job’s execution you had to be using DOTS Physics.

I’m currently waiting for DOTS to add animations and AI to unity, because creating my own system is beyond me.

For DOTS is it as simple as getting a component and calling a method from it such as TakeDamage(DamageAmount);?

Or would that create a bottleneck, and you would have to do some convoluted code in order to get very fast speeds at a high amount of entities?

As I understand the point of jobs is to gather up the information you need before preparing, scheduling, and executing the job. They’re self contained, though can depend on other jobs completing first.

Gotta remember when dealing with multi-threaded stuff 99% of normal Unity API is no longer available to you.

DOTS/ECS is a completely different world to regular Unity as well.

There is a DOTS version of get component. My question is can it be multi threaded and bursted? So it can be very fast at large numbers.

Or does the thing I want my AI to do requires some difficult coding to get high performance with entities.