Найти в Дзене

Unity 2D. Ruby's Adventure. Part 16

Давайте немного отвлечемся от кода и доработает отображение зоны урона. Если вы хотите увеличить зону повреждения, изменив ее размер, то спрайт будет просто растягиваться, и это выглядит некрасиво:

Зона урона
Зона урона

Но можно сделать так, чтобы при увеличении размеров этой зоны, исходный спрайт дублировался, а не растягивался.

Убедитесь, что масштаб игрового объекта зоны установлен в (1, 1, 1) в компоненте Transform. Затем в компоненте Sprite Renderer измените значение свойства Draw Mode на Tiled, а значение свойства Tile Mode на Adaptive:

Настройки Sprite Renderer
Настройки Sprite Renderer

Обратите внимание, что ниже свойства Draw Mode появится предупреждение о том, что спрайт может отображаться неправильно. Последуем инструкциям в этом предупреждении - найдите спрайт Damageable в окне вашего проекта и измените свойство Mesh Type (тип сетки) на Full Rect:

настройки спрайта
настройки спрайта

Нажмите кнопку Apply в нижней части инспектора и проверьте, что предупреждение для объекта Damageable исчезло.

Попробуйте изменить размер зоны и увидите, что она растягивается до тех пор, пока не сможет вместить два спрайта, а затем показывает два спрайта вместо чрезмерного растяжения! Но это работает только в том случае, если вы используете инструмент Rect, а не инструмент Scale!

Двойной размер зону урона
Двойной размер зону урона

Но вы можете заметить, что ваш коллайдер не следовал масштабированию. Чтобы исправить это установите галочку в свойстве Auto Tiling компонента Box Collider 2D:

Настройки коллайдера
Настройки коллайдера

Сверху появится предупреждение, что редактировать коллайдер теперь нельзя, поскольку он будет настраиваться автоматически согласно спрайту.