Ejemplo n.º 1
0
        public static void Cone(Vector3 position, Vector3 direction, Color color, float angle = 45f, float duration = 0f, bool depthTest = true)
        {
            float   single;
            float   single1  = direction.magnitude;
            Vector3 vector3  = direction;
            Vector3 vector31 = Vector3.Slerp(vector3, -vector3, 0.5f);
            Vector3 vector32 = Vector3.Cross(vector3, vector31);
            Vector3 vector33 = vector32.normalized * single1;

            direction = direction.normalized;
            Vector3 vector34 = Vector3.Slerp(vector3, vector31, angle / 90f);
            Plane   plane    = new Plane(-direction, position + vector3);
            Ray     ray      = new Ray(position, vector34);

            plane.Raycast(ray, out single);
            Debug.DrawRay(position, vector34.normalized * single, color);
            vector32 = Vector3.Slerp(vector3, -vector31, angle / 90f);
            Debug.DrawRay(position, vector32.normalized * single, color, duration, depthTest);
            vector32 = Vector3.Slerp(vector3, vector33, angle / 90f);
            Debug.DrawRay(position, vector32.normalized * single, color, duration, depthTest);
            vector32 = Vector3.Slerp(vector3, -vector33, angle / 90f);
            Debug.DrawRay(position, vector32.normalized * single, color, duration, depthTest);
            Vector3 vector35 = position + vector3;

            vector32 = vector3 - (vector34.normalized * single);
            DebugDraw.Circle(vector35, direction, color, vector32.magnitude, duration, depthTest);
            Vector3 vector36 = position + (vector3 * 0.5f);

            vector32 = (vector3 * 0.5f) - (vector34.normalized * (single * 0.5f));
            DebugDraw.Circle(vector36, direction, color, vector32.magnitude, duration, depthTest);
        }
Ejemplo n.º 2
0
        public static void Cylinder(Vector3 start, Vector3 end, Color color, float radius = 1f, float duration = 0f, bool depthTest = true)
        {
            Vector3 vector3  = end - start;
            Vector3 vector31 = vector3.normalized * radius;
            Vector3 vector32 = Vector3.Slerp(vector31, -vector31, 0.5f);

            vector3 = Vector3.Cross(vector31, vector32);
            Vector3 vector33 = vector3.normalized * radius;

            DebugDraw.Circle(start, vector31, color, radius, duration, depthTest);
            DebugDraw.Circle(end, -vector31, color, radius, duration, depthTest);
            DebugDraw.Circle((start + end) * 0.5f, vector31, color, radius, duration, depthTest);
            Debug.DrawLine(start + vector33, end + vector33, color, duration, depthTest);
            Debug.DrawLine(start - vector33, end - vector33, color, duration, depthTest);
            Debug.DrawLine(start + vector32, end + vector32, color, duration, depthTest);
            Debug.DrawLine(start - vector32, end - vector32, color, duration, depthTest);
            Debug.DrawLine(start - vector33, start + vector33, color, duration, depthTest);
            Debug.DrawLine(start - vector32, start + vector32, color, duration, depthTest);
            Debug.DrawLine(end - vector33, end + vector33, color, duration, depthTest);
            Debug.DrawLine(end - vector32, end + vector32, color, duration, depthTest);
        }
Ejemplo n.º 3
0
        public static void Capsule(Vector3 start, Vector3 end, Color color, float radius = 1f, float duration = 0f, bool depthTest = true)
        {
            Vector3 vector3  = end - start;
            Vector3 vector31 = vector3.normalized * radius;
            Vector3 vector32 = Vector3.Slerp(vector31, -vector31, 0.5f);

            vector3 = Vector3.Cross(vector31, vector32);
            Vector3 vector33 = vector3.normalized * radius;

            vector3 = start - end;
            float   single   = vector3.magnitude;
            float   single1  = Mathf.Max(0f, single * 0.5f - radius);
            Vector3 vector34 = (end + start) * 0.5f;

            vector3 = start - vector34;
            start   = vector34 + (vector3.normalized * single1);
            vector3 = end - vector34;
            end     = vector34 + (vector3.normalized * single1);
            DebugDraw.Circle(start, vector31, color, radius, duration, depthTest);
            DebugDraw.Circle(end, -vector31, color, radius, duration, depthTest);
            Debug.DrawLine(start + vector33, end + vector33, color, duration, depthTest);
            Debug.DrawLine(start - vector33, end - vector33, color, duration, depthTest);
            Debug.DrawLine(start + vector32, end + vector32, color, duration, depthTest);
            Debug.DrawLine(start - vector32, end - vector32, color, duration, depthTest);
            for (int i = 1; i < 26; i++)
            {
                Debug.DrawLine(Vector3.Slerp(vector33, -vector31, (float)i / 25f) + start, Vector3.Slerp(vector33, -vector31, (float)(i - 1) / 25f) + start, color, duration, depthTest);
                Debug.DrawLine(Vector3.Slerp(-vector33, -vector31, (float)i / 25f) + start, Vector3.Slerp(-vector33, -vector31, (float)(i - 1) / 25f) + start, color, duration, depthTest);
                Debug.DrawLine(Vector3.Slerp(vector32, -vector31, (float)i / 25f) + start, Vector3.Slerp(vector32, -vector31, (float)(i - 1) / 25f) + start, color, duration, depthTest);
                Debug.DrawLine(Vector3.Slerp(-vector32, -vector31, (float)i / 25f) + start, Vector3.Slerp(-vector32, -vector31, (float)(i - 1) / 25f) + start, color, duration, depthTest);
                Debug.DrawLine(Vector3.Slerp(vector33, vector31, (float)i / 25f) + end, Vector3.Slerp(vector33, vector31, (float)(i - 1) / 25f) + end, color, duration, depthTest);
                Debug.DrawLine(Vector3.Slerp(-vector33, vector31, (float)i / 25f) + end, Vector3.Slerp(-vector33, vector31, (float)(i - 1) / 25f) + end, color, duration, depthTest);
                Debug.DrawLine(Vector3.Slerp(vector32, vector31, (float)i / 25f) + end, Vector3.Slerp(vector32, vector31, (float)(i - 1) / 25f) + end, color, duration, depthTest);
                Debug.DrawLine(Vector3.Slerp(-vector32, vector31, (float)i / 25f) + end, Vector3.Slerp(-vector32, vector31, (float)(i - 1) / 25f) + end, color, duration, depthTest);
            }
        }
Ejemplo n.º 4
0
 public static void Normal(Vector3 point, Vector3 normal, float size, Color color, float duration = 0f, bool depthtest = true)
 {
     DebugDraw.Line(point, point + (normal.normalized * size), color, duration, depthtest);
     DebugDraw.Circle(point, normal.normalized, color, size * 0.5f, duration, depthtest);
 }
Ejemplo n.º 5
0
 public static void Circle(Vector3 position, float radius = 1f, float duration = 0f, bool depthTest = true)
 {
     DebugDraw.Circle(position, Vector3.up, Color.white, radius, duration, depthTest);
 }