Как вы исключаете определенные объекты из системы работы?(ТОЧКИ) - PullRequest
0 голосов
/ 16 апреля 2019

Я совершенно новичок в использовании ECS и Job System от Unity, поэтому, возможно, я неправильно понимаю основную концепцию здесь.Я попытался просмотреть документы, но не смог найти ответ (возможно, потому что он все еще в предварительном просмотре).В любом случае, я хочу иметь возможность исключить влияние определенных объектов с одинаковыми компонентами в системе заданий.

Например:

У вас есть работа:

            // simplified
            Entities.ForEach((ref Acceleration acceleration, ref Velocity velocity, ref Translation translation) =>
            {
                var deltaTime = Time.deltaTime;
                acceleration.value = gravityMass * math.lengthsq(math.distance(translation.Value, float3.zero));
                velocity.value += acceleration.value * deltaTime;
                translation.Value += velocity.value * -math.normalize(translation.Value) * deltaTime;
            });`

И у вас есть две сущности, каждая из которых содержит Acceleration, Velocity и Translation компоненты.Одна из ваших сущностей - это космическая скала, а другая - пуля.Как сделать так, чтобы система, описанная выше, влияла только на космический камень?

Единственное, о чем я мог подумать, - это создать разные именованные компоненты для одного и того же вида данных (например, BulletVelocity и RockVelocity), ноэто не похоже на правильный способ делать вещи.

1 Ответ

0 голосов
/ 17 апреля 2019

Я решил сделать два разных компонента, один называется Gravity, а другой - Acceleration.

Редактировать: В других случаях может быть лучше использовать компоненты тега

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...