cool20141 cool20141

<a href= http://mosros.flybb.ru/viewtopic.php?f=2&t=635>Процесс получения диплома стоматолога: реально ли это сделать быстро?</a>

danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

Jusper, Везде, но наугад строить смысла нет. Нужно разведать сперва территорию на наличие ресурсов.

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

Это так скажем тестовое строительство, а так да у города будет зона влияния которую нужно будет расширять.

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

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

split97 split97

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

ViktorJaguar ViktorJaguar

Почему я нигде не могу найти нормальный туториал, где покажут как экипировать предмет (например, меч) в определенную (выделенную под оружие) ячейку???

Логотип проекта Unity

Триангуляция

Триангуляция — Unity — DevTribe: инди-игры, разработка, сообщество

Триангуляция по простому - разбиение фигуры на треугольники. Подобная операция может понадобиться при создании как нестандартной области выделения, так и при генерации моделей из кода.
Однако, как можно посмотреть в википедии - способов триангуляции существует несколько и один другого круче.
Но не беда прочитать о ней, хочется еще и не изобретать велосипед и взять что-то готовое. Так решил сделать и я, но попытки не увенчались успехом - алгоритм Делоне на 1000 строк кода часть треугольников зачем-то переворачивал, а ушная триангуляция прикрепленная к самой вики статье - на 7000 строк ужасно кривого кода, в котором просто невозможно разобраться. Это принудило меня к написанию алгоритма с нуля - встречайте, ушная триангуляция для Unity всего на 100 строк.

Как работает:

  • Закиньте скрипт в папку с проектом
  • В коде используйте Triangulation.GetResult для получения результата триангуляции. У метода есть две перегрузки

На вход в методе имеется два параметра:

  • List<Vector2> points - точки многоугольника

Триангуляция - это работа в плоскости, потому вектора двумерные. Если внимательно посмотреть, то вариантов разбиения многоугольника на треугольники всегда несколько и в пространстве это бы возвращало разные фигуры. Потому даже не пытайтесь приводить это к трехмерному вектору, не повторяйте моих глупых ошибок :)

  • bool clockwise - если true, то полученные точки обрабатываются по часовой, если false - против часовой.

На выходе возвращается:

  • List<Vector2> - точки треугольников

Список по количеству всегда кратен 3, то есть через каждые три индекса описывается новый треугольник

Пример использования:

var result = Triangulation.GetResult(points, true);

В методе имеется 6 параметров, из которых три на вход:

  • List<Vector3> points - точки многоугольника в пространстве
  • bool clockwise - если true, то полученные точки обрабатываются по часовой, если false - против часовой.
  • Vector3 upAxis - ось, перпендикулярная плоскости

Возвращает три параметра при помощи out. Все эти данные используются для создания меша в аналогичных полях:

  • Vector3[] verticles
  • int[] triangles
  • Vector2[] uvcoords

Третья координата рассчитывается как "среднее значение по точкам на перпендикулярной плоскости".

Пример использования:

        Vector3[] verticles;
        int[] triangles;
        Vector2[] uvcoords;
        Triangulation.GetResult(points, true, Vector3.up, out verticles, out triangles, out uvcoords);
UPDATE:

В комментариях приложен доработанный код с более быстрым алгоритмом.

Смотрите также:


Комментарии



Круто! Штука весьма полезная, особенно для динамического создания различных эффектов. Жаль только текстурные координаты не генерирует

годно, весьма

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

alexprey, с текстурными координатами вроде там все просто - эти же точки и есть текстурные координаты. Хотя могу ошибаться, меш еще с этим не текстурил
Проверил - не ошибся

    public void Calculate()
    {
        //Add points
        var points = new List<Vector3>();
        for (int i = 0; i < transform.childCount; i++)
            points.Add(transform.GetChild(i).localPosition);

        //Triangulation
        var result = Triangulation.GetResult(points.Select(v => new Vector2(v.x, v.z)).ToList(), true);

        //Get Verticles
        var verticles = result.Select(v => new Vector3(v.x, 0, v.y)).ToList();
        //Get Triangles - тупо значения от 0 и ++
        var triangles = new int[verticles.Count];
        for (int i = 0; i < verticles.Count; i++)
            triangles[i] = i;

        //Create mesh
        var mesh = new Mesh { vertices = verticles.ToArray(), triangles = triangles.ToArray(), uv = result.ToArray() };
        mesh.RecalculateNormals();

        //Add mesh in MeshFilter
        var f = GetComponent<MeshFilter>();
        if (f.sharedMesh != null)
            DestroyImmediate(f.sharedMesh);
        f.sharedMesh = mesh;
    }

Естественно по нестандартной оси появилось бы еще немного работы с кватернионом

а что в юнити модели только из трианглов сделаны?

nvc123, из полигонов, если быть точным. Они могут быть представлены как трианглами, так и квадрами.

Extravert, это понятно что из полигонов
просто некоторые движки позволяют юзать не только трианглы и квадры

nvc123, например?

nvc123, может, ты имел ввиду просто трёхмерные редакторы?

Extravert, молодец!

Обновлено.
Добавлена перегрузка, конвертирующая пространственные координаты по указанной нами оси и возвращающая (координаты точек + порядок рисования + текстурные координаты).
В общем для создания мешей удобней и быть не может.

Справка