Esempio n. 1
0
        public static Mesh TriangleFan(Vector3 center, float radius, int segments, bool inverted = false)
        {
            var points = Polygon.Circle(radius, segments);

            if (inverted)
            {
                points.Reverse();
            }

            var vertices = new Vector3[points.Count];
            var uv       = new Vector2[points.Count];

            for (int i = 0; i < points.Count; i++)
            {
                vertices[i] = center + new Vector3(points[i].x, points[i].y);
                uv[i]       = new Vector2(points[i].x / radius, points[i].y / radius);
            }

            var triangles = new List <int>();

            for (int i = 1; i < vertices.Length; i++)
            {
                triangles.Add(0);
                triangles.Add(i);
                triangles.Add(i - 1);
            }

            var mesh = new Mesh
            {
                vertices  = vertices,
                triangles = triangles.ToArray(),
                uv        = uv
            };

            mesh.RecalculateNormals();

            return(mesh);
        }
Esempio n. 2
0
        public static void DrawCircle(Vector3 center, Vector3 radius, Color color, float duration, bool depthTest)
        {
            var polygon = Polygon.Circle(radius.magnitude) + center;

            DrawPolygon(polygon, color, duration, depthTest);
        }