//----------------------------------------------------------------------------- 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); }