- Home /
Question by
wolfenstien98 · Feb 01, 2016 at 05:38 PM ·
c#editor-scriptinggizmosbezier
Rotating Bezier curves.
I have the following code below for a ellipsoid that is drawn as a Gizmo.(I apologize for the size.) It draws an ellipsoid of a custom height, width, and depth, the problem is that when I rotate the target object, it breaks up the ellipsoid. As you can see it uses Handles.DrawBezier to draw each corner of the ellipsoid. If anyone could help me out, that would be fantastic.
//Y-Z Ring
Handles.DrawBezier(new Vector3(drawPos.x, drawPos.y + src.effectSize.y, drawPos.z), new Vector3(drawPos.x, drawPos.y, drawPos.z + src.effectSize.z), src.transform.TransformPoint(new Vector3(0, src.effectSize.y, src.effectSize.z / 2)), src.transform.TransformPoint(new Vector3(0, src.effectSize.y / 2, src.effectSize.z)), col, Texture2D.whiteTexture, size);
Handles.DrawBezier(new Vector3(drawPos.x, drawPos.y + src.effectSize.y, drawPos.z), new Vector3(drawPos.x, drawPos.y, drawPos.z - src.effectSize.z), src.transform.TransformPoint(new Vector3(0, src.effectSize.y, -src.effectSize.z / 2)), src.transform.TransformPoint(new Vector3(0, src.effectSize.y / 2, -src.effectSize.z)), col, Texture2D.whiteTexture, size);
Handles.DrawBezier(new Vector3(drawPos.x, drawPos.y - src.effectSize.y, drawPos.z), new Vector3(drawPos.x, drawPos.y, drawPos.z + src.effectSize.z), src.transform.TransformPoint(new Vector3(0, -src.effectSize.y, src.effectSize.z / 2)), src.transform.TransformPoint(new Vector3(0, -src.effectSize.y / 2, src.effectSize.z)), col, Texture2D.whiteTexture, size);
Handles.DrawBezier(new Vector3(drawPos.x, drawPos.y - src.effectSize.y, drawPos.z), new Vector3(drawPos.x, drawPos.y, drawPos.z - src.effectSize.z), src.transform.TransformPoint(new Vector3(0, -src.effectSize.y, -src.effectSize.z / 2)), src.transform.TransformPoint(new Vector3(0, -src.effectSize.y / 2, -src.effectSize.z)), col, Texture2D.whiteTexture, size);
//X-Y Ring
Handles.DrawBezier(new Vector3(drawPos.x + src.effectSize.x, drawPos.y, drawPos.z), new Vector3(drawPos.x, drawPos.y + src.effectSize.y, drawPos.z), src.transform.TransformPoint(new Vector3((src.effectSize.x), (src.effectSize.y / 2), 0)), src.transform.TransformPoint(new Vector3((src.effectSize.x / 2), (src.effectSize.y), 0)), col, Texture2D.whiteTexture, size);
Handles.DrawBezier(new Vector3(drawPos.x - src.effectSize.x, drawPos.y, drawPos.z), new Vector3(drawPos.x, drawPos.y + src.effectSize.y, drawPos.z), src.transform.TransformPoint(new Vector3(-(src.effectSize.x), (src.effectSize.y / 2), 0)), src.transform.TransformPoint(new Vector3(-(src.effectSize.x / 2), (src.effectSize.y), 0)), col, Texture2D.whiteTexture, size);
Handles.DrawBezier(new Vector3(drawPos.x + src.effectSize.x, drawPos.y, drawPos.z), new Vector3(drawPos.x, drawPos.y - src.effectSize.y, drawPos.z), src.transform.TransformPoint(new Vector3((src.effectSize.x), -(src.effectSize.y / 2), 0)), src.transform.TransformPoint(new Vector3((src.effectSize.x / 2), -(src.effectSize.y), 0)), col, Texture2D.whiteTexture, size);
Handles.DrawBezier(new Vector3(drawPos.x - src.effectSize.x, drawPos.y, drawPos.z), new Vector3(drawPos.x, drawPos.y - src.effectSize.y, drawPos.z), src.transform.TransformPoint(new Vector3(-(src.effectSize.x), -(src.effectSize.y / 2), 0)), src.transform.TransformPoint(new Vector3(-(src.effectSize.x / 2), -(src.effectSize.y), 0)), col, Texture2D.whiteTexture, size);
//X-Z Ring
Handles.DrawBezier(new Vector3(drawPos.x + src.effectSize.x, drawPos.y, drawPos.z), new Vector3(drawPos.x, drawPos.y, drawPos.z + src.effectSize.z), src.transform.TransformPoint(new Vector3((src.effectSize.x), 0, (src.effectSize.z /2))), src.transform.TransformPoint(new Vector3((src.effectSize.x / 2), 0, (src.effectSize.z))), col, Texture2D.whiteTexture, size);
Handles.DrawBezier(new Vector3(drawPos.x - src.effectSize.x, drawPos.y, drawPos.z), new Vector3(drawPos.x, drawPos.y, drawPos.z + src.effectSize.z), src.transform.TransformPoint(new Vector3(-(src.effectSize.x), 0, (src.effectSize.z /2))), src.transform.TransformPoint(new Vector3(-(src.effectSize.x / 2), 0, (src.effectSize.z))), col, Texture2D.whiteTexture, size);
Handles.DrawBezier(new Vector3(drawPos.x + src.effectSize.x, drawPos.y, drawPos.z), new Vector3(drawPos.x, drawPos.y, drawPos.z - src.effectSize.z), src.transform.TransformPoint(new Vector3((src.effectSize.x), 0, -(src.effectSize.z /2))), src.transform.TransformPoint(new Vector3((src.effectSize.x / 2), 0, -(src.effectSize.z))), col, Texture2D.whiteTexture, size);
Handles.DrawBezier(new Vector3(drawPos.x - src.effectSize.x, drawPos.y, drawPos.z), new Vector3(drawPos.x, drawPos.y, drawPos.z - src.effectSize.z), src.transform.TransformPoint(new Vector3(-(src.effectSize.x), 0, -(src.effectSize.z /2))), src.transform.TransformPoint(new Vector3(-(src.effectSize.x / 2), 0, -(src.effectSize.z))), col, Texture2D.whiteTexture, size);
Comment
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Get gameobject gizmo icon by script 0 Answers
Distribute terrain in zones 3 Answers
Gizmos.DrawLine is dissapearing after returning to editor after Playing the scene 0 Answers
Gizmos icons 0 Answers