//-----------------------------------------------------------------------------
 public static void CreateAgent(EntityCommandBuffer ecb, float3 pos, Mesh mesh, Material mat, Tile.GridSettings settings)
 {
     ecb.CreateEntity(Agent);
     ecb.SetComponent(new Position {
         Value = pos
     });
     ecb.SetSharedComponent(new AgentMeshInstanceRenderer {
         mesh = mesh, material = mat, castShadows = UnityEngine.Rendering.ShadowCastingMode.On
     });
     ecb.SetSharedComponent(settings);
     ecb.SetComponent(new Goal {
         Current = TileSystem.k_InvalidHandle, Target = TileSystem.k_InvalidHandle
     });
     ecb.SetComponent(new TargetReached {
         Value = 0, CurrentGoal = TileSystem.k_InvalidHandle
     });
 }
 //-----------------------------------------------------------------------------
 public static void SetupTile(EntityManager em, Entity e, Mesh mesh, Material mat, int2 pos, byte cost, float3 col, Tile.GridSettings settings)
 {
     em.SetComponentData(e, new Tile.Position {
         Value = pos
     });
     em.SetComponentData(e, new Tile.Cost {
         Value = cost
     });
     em.SetComponentData(e, new Tile.FlowFieldHandle {
         Handle = int.MaxValue
     });
     em.SetSharedComponentData(e, new Tile.TileMeshInstanceRenderer {
         Mesh = mesh, Material = mat
     });
     em.SetSharedComponentData(e, settings);
 }