Публикации по теме 'english-articles'
[Unity ECS] Обеспечение большего параллелизма и производительности с помощью BarrierSystem и EntityCommandBuffer
Вы можете думать о EntityCommandBuffer / EntityCommandBuffer.Concurrent как об инструменте, позволяющем избежать ограничений на то, что вы можете делать на работе. В основном, в работе вы не можете использовать EntityManager , потому что это вызывает структурные изменения, поэтому вы откладываете действие на потом, которое произойдет в BarrierSystem . Но я только что открыл с ними крутые трюки.
Представьте, что у вас есть 6 * почти * не связанных заданий в одной системе, и все..
[Unity ECS] Проблемы с EndFrameBarrier
В ECS вы не должны жестко указывать позицию обновления системы, но вы должны настроить систему таким образом, чтобы она «оказалась» на 100% в правильном месте, независимо от окончательного порядка.
Предположим, что вы разрабатываете DestroyPacketSystem . Намерение состоит в том, чтобы очистить все куски, которые содержат Packet компонент в каждом кадре, чтобы в следующем кадре никто не мог использовать его второй раз.
Дизайн может быть
DestroyPacketSystem поставили команды..
[Unity ECS] Unity.Mathematics против Mathf.
Unity Mathf не на 100% заменяет его дружественный к взрыву Unity.Mathematics . Также Unity.Mathematics постоянно развивается. К настоящему моменту, когда вы читаете это, что-то могло измениться.
Quaternion доступен для использования в рабочих местах
quaternion введите его маленькими q вот так. Это в Unity.Mathematics
Отличие LookRotation
Это результат того же ввода:
Quaternion.LookRotation (с Vector3)
Look (-1.6, 61.3, 162.4) Up (0.5, -0.9, 0.0) QuatWXYZ..
[Unity Addressables] Общие сведения об «объектах инициализации»
Новое в 0.4.0, «Объекты инициализации» Addressables заключается не в том, что вы можете получить объект при запуске, это не в том, что вы можете загрузить какой-либо адрес актива сразу при запуске. Смысл в том, что при инициализации необходимо что-то сделать на основе содержимого вашего ScriptableObject «объекта инициализации», который вы можете сериализовать в проекте и настроить для изменения поведения во время выполнения.
Ключевой момент здесь, при инициализации. Существует..
[Unity ECS] Создайте абстрактный класс с дженериками, которые влияют на объявление структуры вставки.
Из предыдущей темы группа должна быть прочитана только в том случае, если я хочу организовать свой код вокруг struct + interface и у меня не может быть никаких записываемых данных внутри моей группы ввода.
Но не все надежды потеряны, мы все еще можем сделать абстрактный класс вместо интерфейсов с хорошими функциями… начнем с текущего дизайна.
Как обобщить этот JobComponentSystem , чтобы его можно было повторно использовать позже?
Я сделал 2 абстрактных класса, которые..
[Unity ECS] Проблемы модульного тестирования с ECS
Концепция ECS очень хорошо подходит для модульного тестирования, поскольку вы можете буквально «создать экземпляр логики», передать какие-то данные в мир и заставить его работать. Но это когда уже работает. На этом пути есть проблемы.
В модульном тесте нет активного мира по умолчанию.
World.Active будет исключением нулевой ссылки. Мне нужно создать подкласс, чтобы позволить [SetUp] и [TearDown] пройти все тесты.
Обратите внимание, что [TearDown] и dispose на [SetUp]..
[Unity ECS] Структура данных Chunk
Недавно я занялся сериализацией ECS, которая сериализует структуру Chunk очень простым способом. По пути я узнал об этом, что я хотел бы резюмировать здесь.
В настоящее время все основано на предварительной версии 21. Приближается возможность выбора размера фрагмента, и это изменит ситуацию.
Структура фрагмента
Обратите внимание на комментарий X | Y . Это смещение до конца этого поля в зависимости от архитектуры. (64 | 32 бит)
UnsafeLinkedListNode
Каждый из них..