Esempio n. 1
0
 public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
 {
     dstManager.AddComponentData(entity, new TimeToLive {
         timeToLive = lifeTime
     });
     dstManager.AddComponent <FleetSpawnPointTag>(entity);
     conversionSystem.DeclareLinkedEntityGroup(gameObject);
 }
Esempio n. 2
0
    public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
    {
        conversionSystem.DeclareLinkedEntityGroup(this.gameObject);
        Entity additional1 = conversionSystem.CreateAdditionalEntity(this.gameObject);

        dstManager.SetName(additional1, $"{this.name}_Add1");
        Entity additional2 = conversionSystem.CreateAdditionalEntity(this.gameObject);

        dstManager.SetName(additional2, $"{this.name}_Add2");

        conversionSystem.GetPrimaryEntity(referPrefab);
    }
Esempio n. 3
0
        public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
        {
            dstManager.AddComponentData(entity, new EntityRefTestData {
                Value = conversionSystem.GetPrimaryEntity(Value)
            });

            for (int i = 0; i != AdditionalEntityCount; i++)
            {
                var additional = conversionSystem.CreateAdditionalEntity(this);
                dstManager.AddComponentData(additional, new EntityRefTestData {
                    Value = conversionSystem.GetPrimaryEntity(Value)
                });
            }

            if (DeclareLinkedEntityGroup)
            {
                conversionSystem.DeclareLinkedEntityGroup(gameObject);
            }
        }
Esempio n. 4
0
    public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
    {
        dstManager.AddComponentData(entity, new BodyInput());
        dstManager.AddComponentData(entity, new MovementSpeed {
            Value = movementSpeed
        });
        dstManager.AddComponentData(entity, new RotationSpeed {
            Value = rotationSpeed
        });
        dstManager.AddComponentData(entity, new Velocity());

        if (movementPath != null)
        {
            Entity pathEntity = conversionSystem.GetPrimaryEntity(movementPath);
            dstManager.AddComponentData(entity, new PathMovement {
                Path = pathEntity, CurrentTargetWaypoint = 0, IsLooping = true
            });
        }

        //we will use this when destroying the tank: upon destruction of the base Entity,
        //all of the Entities in the LinkedEntityGroup buffer will be destroyed too
        conversionSystem.DeclareLinkedEntityGroup(gameObject);
    }
 public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
 {
     conversionSystem.DeclareLinkedEntityGroup(gameObject);
 }
Esempio n. 6
0
        //TODO: Editor Rendering not working for some reason.
        public async void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
        {
            if (map != null)
            {
                var mapSystem = dstManager.World.GetOrCreateSystem <MapSystemGroup>();
                dstManager.AppendArchetype(entity, mapSystem.Archetypes.Map);
                var mesh = map.CreateMesh();
                mesh.RecalculateBounds();
                dstManager.AddComponentData(entity, new MapData(map.CreateBlob()));
                dstManager.AddComponentData(entity, new MapHighlightState {
                    dirty = 0, states = new Unity.Collections.LowLevel.Unsafe.UnsafeMultiHashMap <ushort, Point>(16, Allocator.Persistent)
                });
                dstManager.AddComponentData(entity, new MapCollisionState {
                    value = new Unity.Collections.LowLevel.Unsafe.UnsafeHashMap <Point, Entity>(16, Allocator.Persistent)
                });
                dstManager.AddComponentData(entity, new MapRenderInfo {
                    baseIndexCount = mesh.GetIndexCount(0), tileSize = 1f, elevationStep = 0.25f
                });
                var layerEntities = new NativeArray <Entity>(MapLayers.Count, Allocator.TempJob);

                for (int i = 0; i < MapLayers.Count; i++)
                {
                    layerEntities[i] = conversionSystem.CreateAdditionalEntity(this);
                    dstManager.AppendArchetype(layerEntities[i], mapSystem.Archetypes.MapRenderLayer);
                }

                var      layers   = (MapLayer[])Enum.GetValues(typeof(MapLayer));
                Material material = mapMaterial;

                for (int i = 0; i < layers.Length; i++)
                {
#if UNITY_EDITOR
                    dstManager.SetName(layerEntities[i], $"{this.name} ({layers[i]} Layer)");
#endif
                    dstManager.SetSharedComponentData(layerEntities[i], new RenderMesh
                    {
                        mesh           = mesh,
                        material       = material,
                        subMesh        = i,
                        castShadows    = ShadowCastingMode.Off,
                        receiveShadows = false,
                        layer          = transform.gameObject.layer
                    });
                    dstManager.SetComponentData(layerEntities[i], new MapElement {
                        value = entity
                    });
                    dstManager.SetComponentData(layerEntities[i], new MaterialColor
                    {
                        Value = layerColors[layers[i]].ToFloat4()
                    });

                    dstManager.SetComponentData(layerEntities[i], new RenderBounds {
                        Value = mesh.bounds.ToAABB()
                    });

                    /*                 dstManager.AddComponentData(layerEntities[i], new Translation { Value = new float3(0, 0, 0) });
                     *              dstManager.AddComponentData(layerEntities[i], new Rotation { Value = quaternion.identity });
                     *              dstManager.AddComponentData(layerEntities[i], new CompositeScale { Value = float4x4.Scale(1) });
                     *              dstManager.AddComponentData(layerEntities[i], new PerInstanceCullingTag());
                     *              dstManager.AddComponentData(layerEntities[i], new BuiltinMaterialPropertyUnity_RenderingLayer { Value = 1 }); */
                    //Overlapping submeshes can't overlap anymore so offset position slightly upward for each layer.
                    dstManager.SetComponentData(layerEntities[i], new LocalToWorld {
                        Value = float4x4.Translate(new float3(0, transform.position.y + (LAYER_OFFSET * i), 0))
                    });
                    dstManager.GetBuffer <MapLayerRenderer>(entity).Add(new MapLayerRenderer {
                        entity = layerEntities[i], layer = layers[i]
                    });
                    //dstManager.AddBuffer<MapTileEffect>(entity);
                    dstManager.AddComponentData(layerEntities[i], new Parent {
                        Value = entity
                    });
                    conversionSystem.ConfigureEditorRenderData(layerEntities[i], this.gameObject, true);
                }
                var children = dstManager.AddBuffer <Child>(entity);
                children.AddRange(layerEntities.Reinterpret <Child>());
                conversionSystem.DeclareLinkedEntityGroup(this.gameObject);
                conversionSystem.ConfigureEditorRenderData(entity, this.gameObject, true);
                layerEntities.Dispose();
            }
        }
Esempio n. 7
0
 public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
 {
     conversionSystem.DeclareLinkedEntityGroup(this.gameObject);
     this.CreateEntities(entity, conversionSystem);
 }
 public void Convert(Entity entity, EntityManager dstmanager, GameObjectConversionSystem system)
 {
     system.DeclareLinkedEntityGroup(this.gameObject);
 }