но и внутри. Условно у меня есть 3д модель воксельная, там по порядку идёт, первый слой, второй, третий и тд. Я хочу, чтоб если игрок ударил/выстрелил и тд в какой-то воксель, то он исчез и на за ним уже дальше внутри был следующий слой. Как это реализовать? Я игры с подобной механикой видел, а вот сделать не могу понять как
Как минимум отойти от использования Gameobjects в сторону процедурнух мешей. Я вижу это так: есть структура VoxelGroupData, который хранит массив всей вокселей. Воксель это структура 13 или 7 байт, в зависимости от налобности (либо 12 байт (uint, int)на позицию и 1 на цвет, либо 6 на позицию (ushort/short) и так же один на цвет). Есть класс или Job (я настоятельно рекомендую Job), который в реальном времени создает набор вершин и полигонов из этих вокселей. Разрушение все просто - просчитать в какой воксель попал предполагаемый снаряд, дальше внутренними методами просчитать проникновение, удалить ненужные воксели, если надо разбить одну группу вокселей на несколько (если объект раскололся) и пересобрать меш. Для отрисовки и физики можешь использовать gameobject, ничего плохого не будет, если пара объектов будет заменять тысячу вокселей
Обсуждают сегодня