示例#1
0
        public void DrawCapsule(float height, float radius, Matrix4x4 matrix)
        {
            float diameter = 2.0f * radius;

            height = height < diameter ? diameter : height;

            Vector3[] vertices  = MathUtility.CalcCapsuleVertex2D(height, radius, matrix, subdivide);
            Vector3[] vertices2 = MathUtility.CalcCapsuleVertex2D(height, radius, matrix * Matrix4x4.Rotate(Quaternion.Euler(0.0f, 90.0f, 0.0f)), subdivide);
            DrawPolygon(vertices);
            DrawPolygon(vertices2);

            float      offset   = (height - diameter) / 2.0f;
            Vector3    highPos  = new Vector3(0.0f, offset, 0.0f);
            Vector3    lowPos   = new Vector3(0.0f, -offset, 0.0f);
            Quaternion rotation = Quaternion.Euler(90.0f, 0.0f, 0.0f);

            DrawCircle(radius, matrix * Matrix4x4.TRS(highPos, rotation, Vector3.one));
            DrawCircle(radius, matrix * Matrix4x4.TRS(lowPos, rotation, Vector3.one));
        }
示例#2
0
 public void DrawCapsule2D(float height, float radius, Matrix4x4 matrix)
 {
     Vector3[] vertices = MathUtility.CalcCapsuleVertex2D(height, radius, matrix, subdivide);
     DrawPolygon(vertices);
 }