示例#1
0
 private void ManagedDraw(Vector3 start, Vector3 end, NativeString512 text, DebugTestDrawOptions methods)
 {
     if (MultiThreaded)
     {
         for (int i = 0; i < 10; i++)
         {
             Task.Run(() =>
             {
                 DrawTests(Thread.CurrentThread.ManagedThreadId, start, end, text, methods, Hexagon);
             });
         }
     }
     else
     {
         DrawTests(Thread.CurrentThread.ManagedThreadId, start, end, text, methods, Hexagon);
     }
 }
示例#2
0
    private static unsafe void DrawTests(int threadIndex, float3 start, float3 end, NativeString512 text, DebugTestDrawOptions methods, NativeArray <float3> polygon, int index = -1)
    {
        float3 offset = Vector3.up * 0.05f + Vector3.left * 0.05f;
        float3 center = (start + (end - start) / 2);

        if (methods.RectangleWithOutline)
        {
            var size   = 0.25f;
            var points = stackalloc[]
            {
                center + offset + new float3(0, 0, 0),
                center + offset + new float3(0, size, 0),
                center + offset + new float3(0, size, size),
                center + offset + new float3(0, 0, size)
            };

            DebugDrawer.DrawSolidRectangleWithOutline(threadIndex, points, UnityColors.LightYellow, UnityColors.Yellow);
        }

        if (methods.Polygon)
        {
            DebugDrawer.DrawAAConvexPolygon(threadIndex, polygon, center + (float3)Vector3.down * 0.25f, UnityColors.GhostDodgerBlue);
        }

        if (methods.Sphere)
        {
            DebugDrawer.DrawSphere(threadIndex, start, 0.75f, UnityColors.GhostDodgerBlue);
        }

        if (methods.Line)
        {
            DebugDrawer.DrawLine(threadIndex, start + offset, end + offset);
        }

        if (methods.Line)
        {
            DebugDrawer.DrawLine(threadIndex, start + offset * 2, end + offset * 2);
        }

        if (methods.Ray)
        {
            DebugDrawer.DrawRay(threadIndex, center, Vector3.up, UnityColors.MediumBlue);
        }

        if (methods.Cone)
        {
            DebugDrawer.DrawCone(threadIndex, center + (float3)Vector3.up * 0.5f, Vector3.up, UnityColors.DarkKhaki, 22.5f);
        }

        if (methods.Circle)
        {
            DebugDrawer.DrawCircle(threadIndex, center, Vector3.up, 0.25f, UnityColors.AliceBlue);
        }

        if (methods.DottedLine)
        {
            DebugDrawer.DrawDottedLine(threadIndex, start, end, Color.yellow);
        }

        if (methods.WireCube)
        {
            DebugDrawer.DrawWireCube(threadIndex, end, Vector3.one / 2, Color.yellow);
        }

        if (methods.DottedWireCube)
        {
            DebugDrawer.DrawDottedWireCube(threadIndex, end, Vector3.one, Color.black);
        }

        if (methods.Label)
        {
            DebugDrawer.DrawLabel(threadIndex, center + (float3)Vector3.down * 0.25f, text);
        }

        if (methods.Arrow)
        {
            DebugDrawer.DrawArrow(threadIndex, start + (float3)Vector3.up * 0.5f, Vector3.up, Color.blue);
        }

        if (methods.Log)
        {
            DebugDrawer.Log(threadIndex, text);
        }

        if (methods.LogWarning)
        {
            DebugDrawer.LogWarning(threadIndex, text);
        }

        if (methods.LogError)
        {
            DebugDrawer.LogError(threadIndex, text);
        }

        if (methods.Point)
        {
            DebugDrawer.DrawPoint(threadIndex, center + (float3)Vector3.forward, UnityColors.Lavender, 0.25f);
        }
    }
}