Как правильно подойти к вопросу: какой есть бесплатный Unity ассет, чтобы строить Voxel карты с текстурами?

Ссылка скопирована
1 ответ

По вводным: чтобы каждому блоку, который я ставлю можно было добавить текстуру
По вводным: чтобы ломать и ставить блоки как и в эдиторе, так и в игре через скрипт и чтобы можно было каждому блоку звук ломания, скорость ломания поставить
Сейчас ситуация такая: и чтобы чанки генерировались и чтобы лишние текстуры, например когда 2 блока рядом поставили между ними текстура не генерировалась, только которая видна игроку

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ирина WP Ответ

Для Unity voxel-карт лучше сначала определиться, что именно нужно: редактор для расстановки кубов, runtime-генерация чанков, Minecraft-подобное разрушение/установка блоков или просто визуальная сетка из voxel-объектов. Бесплатные ассеты часто закрывают только часть задачи, а полноценный voxel engine почти всегда требует доработки.

Что смотреть в первую очередь:

  • Поддержка chunk-based генерации, чтобы мир не был одним огромным мешем.
  • Greedy meshing или похожая оптимизация, чтобы не рисовать невидимые грани между соседними блоками.
  • Система block types: текстуры, прочность, звук, параметры разрушения.
  • Возможность редактировать мир и в editor, и runtime.
  • Сохранение изменений мира.

Из бесплатных вариантов можно искать в Unity Asset Store и GitHub по запросам “voxel terrain”, “block world”, “minecraft clone unity”, “voxel engine unity”. Но я бы не выбирал ассет только по красивым скриншотам. Скачайте демо и проверьте на сцене из нескольких тысяч блоков: FPS, количество draw calls, время генерации чанка и удобство добавления нового типа блока.

Минимальная архитектура обычно такая: есть enum/id блока, ScriptableObject с настройками блока, chunk хранит массив blockId, генератор строит mesh только для видимых граней.

[CreateAssetMenu]
public class BlockDefinition : ScriptableObject
{
    public int id;
    public string blockName;
    public Texture2D texture;
    public float hardness = 1f;
    public AudioClip breakSound;
}

[CreateAssetMenu] public class BlockDefinition : ScriptableObject { public int id; public string blockName; public Texture2D texture; public float hardness = 1f; public AudioClip breakSound; }

Если задача учебная, можно написать свой простой voxel chunk. Это даст больше понимания, чем попытка подстроиться под чужой ассет. Если нужна готовая production-основа, смотрите, когда ассет обновлялся, есть ли поддержка URP/HDRP, работает ли на вашей версии Unity и не завязан ли он на устаревший рендер.

Итог: бесплатный ассет найти можно, но “чтобы всё было как Minecraft” обычно требует доработки. Для начала берите проект с чанками и greedy meshing, а текстуры/звуки/прочность блоков выносите в ScriptableObject. Так вы не упретесь в архитектуру через пару дней.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно