Unity3D - упорядочить список по углам - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь сделать 2D-игру в единстве. Я хочу создать выпуклую оболочку вокруг группы Hardbody2D, которые есть в Списке. Чтобы сделать это, мне нужно упорядочить список по углу, который каждый из элементов solidbody2D делает с начальной позицией. Кто-нибудь знает, как я мог это сделать?

1 Ответ

1 голос
/ 29 марта 2020

Вы можете использовать LINQ для сортировки списка по вычисленному значению.

        return list.OrderBy(c =>
        {
            return /*ANGLE COMPUTATION*/;
        }).ToList();

, и это вычисление угла может быть точечным произведением между (нормализованными) векторами. https://docs.unity3d.com/ScriptReference/Vector3.Dot.html

https://en.wikipedia.org/wiki/Dot_product

Существуют легкодоступные реализации для алгоритмов выпуклых оболочек, такие как этот: https://github.com/masphei/ConvexHull

...