Пример #1
0
    private void Start()
    {
        m = World.Active.EntityManager;


        LinkedEntityGroup group = new LinkedEntityGroup();

        en1 = CraftEntity(new float3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)));
        en2 = CraftSphere(new float3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)));

        parent.onClick.AddListener(MergeEntitiesTogether(en1, en2));
        move.onClick.AddListener(MoveEntities());
        destroy.onClick.AddListener(delegate { m.DestroyEntity(en1); });
    }
Пример #2
0
        void CreatePlayerHitboxes(Entity player, EntityManager entityManager, int size)
        {
            var archetype = entityManager.CreateArchetype(
                typeof(Translation), typeof(Parent), typeof(Scale),
                typeof(LocalToParent), typeof(LocalToWorld),
                typeof(Hitbox), typeof(HitboxState));

            var group = new NativeArray <LinkedEntityGroup>(size, Allocator.Temp);

            for (byte i = 0; i < size; i++)
            {
                var entity = entityManager.CreateEntity(archetype);
                entityManager.AddComponentData(entity, new Scale {
                    Value = 1.0f
                });
                entityManager.AddComponentData(entity, new Hitbox {
                    Radius = 1,
                });
                entityManager.AddComponentData(entity, new Parent {
                    Value = player
                });
                entityManager.AddComponentData(entity, new HitboxState {
                    Player   = player,
                    ID       = i,
                    PlayerID = this.PlayerID,
                    Enabled  = false
                });

                group[i] = new LinkedEntityGroup {
                    Value = entity
                };

#if UNITY_EDITOR
                entityManager.SetName(entity, $"{name}, Hitbox {i + 1}");
#endif
            }

            entityManager.AddBuffer <LinkedEntityGroup>(player).AddRange(group);
        }