public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
    {
        var fieldTransform = FieldObject.transform.localScale;

        var gridCounts = Vector2Int.RoundToInt(new Vector2(fieldTransform.x, fieldTransform.z) / this.ResourceSize);
        var gridSize   = new Vector2(fieldTransform.x / gridCounts.x, fieldTransform.z / gridCounts.y);
        var minGridPos = new Vector2((gridCounts.x - 1f) * -(0.5f * gridSize.x), (gridCounts.y - 1f) * -(0.5f * gridSize.y));

        var resourceManagerData = new ResourceManagerData
        {
            FloorHeight     = -(0.5f * fieldTransform.y),
            ResourceSize    = this.ResourceSize,
            ResourceGravity = this.ResourceGravity,
            SnapStiffness   = this.SnapStiffness,
            CarryStiffness  = this.CarryStiffness,
            SpawnRate       = this.SpawnRate,
            BeesPerResource = this.BeesPerResource,
            GridCounts      = gridCounts,
            GridSize        = gridSize,
            MinGridPos      = minGridPos,
        };

        var resourceMeshData = new RenderMeshInfo()
        {
            Mesh     = this.ResourceMesh,
            Material = this.ResourceMaterial
        };

        var spawnResourceData = new SpawnResourceData
        {
            SpawnCount = StartResourceCount
        };

        dstManager.AddComponentData(entity, resourceManagerData);
        dstManager.AddComponentData(entity, spawnResourceData);
        dstManager.AddSharedComponentData(entity, resourceMeshData);
    }
Example #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:WaveEngine.Framework.Graphics.Instancing.InstancingBatchRenderUnit" /> class.
 /// </summary>
 /// <param name="info">The mesh info.</param>
 /// <param name="instanceCount">The instance count.</param>
 public MyInstancingBatchRenderUnit(RenderMeshInfo info, uint instanceCount = 1)
     : base(info, instanceCount)
 {
 }