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)); }
public void DrawCapsule2D(float height, float radius, Matrix4x4 matrix) { Vector3[] vertices = MathUtility.CalcCapsuleVertex2D(height, radius, matrix, subdivide); DrawPolygon(vertices); }