Как на в сделать обводку для 3D объектов?
Мне нужно написать мобильное приложение, которое будет составлять карту высот. Решил выбрать unity для разработки, так как там когда-то работал. Плюс в нём удобнее работать с 3д миром. И начал я разработку. Быстро написал скриптик, который будет создавать "Зону"
using UnityEngine;
using UnityEngine.UI;
public class PlaneBuilderScript : MonoBehaviour
{
[SerializeField] private int width = 10;
[SerializeField] private int height = 10;
[SerializeField] private int levels = 5;
[SerializeField] private float spacing = 0.5f;
[SerializeField] private Material outlineMaterial;
[SerializeField] private GameObject planesContainer;
void Start()
{
BuildPlanes();
}
void BuildPlanes()
{
for (int level = 0; level < levels; level++)
{
for (int x = 0; x < width; x++)
{
for (int z = 0; z < height; z++)
{
CreateRectangle(x, z, level);
}
}
}
}
void CreateRectangle(int x, int z, int level)
{
// Создаем прямоугольник (квадрат) размером 1x1 метр
GameObject rectangle = GameObject.CreatePrimitive(PrimitiveType.Cube);
rectangle.transform.localScale = new Vector3(1, 0.01f, 1);
rectangle.transform.position = new Vector3(x, level * spacing, z);
rectangle.name = $"Rectangle_{x}_{z}_{level}";
rectangle.transform.parent = planesContainer.transform;
}
}
Создается вот такое поле:
И возник вопрос. Как мне сделать, чтобы прямоугольники были между собою различимы? Я решил, что надо добавить линии, которые будут их отделять друг от друга, но столкнулся с проблемой, что компонент outline
ничего не меняет для 3d объекта.
Мне нужно, чтобы получилось что-то вроде таких линий (без свечения):
Ответы (1 шт):
Есть готовые скрипты
Вот чем пользуюсь я обводки: https://assetstore.unity.com/packages/tools/particles-effects/quick-outline-115488
Вот что может ещё пригодится: https://assetstore.unity.com/packages/tools/particles-effects/outline-toolkit-98020
Также можешь сам поискать на площадке другие outline инструменты, там много чего готового есть