- Home /
Calculate needed resolution to draw curve from line segments in editor
I'm drawing some debug curves in world space of my scene view. I'm looping through a fixed number (the resolution) and create a point for each iteration, which I finally connect with Debug.DrawLine().
This works well, but I would like to improve on the system by calculating how many line points/segments I need to have the curve appear round at any given zoom level in the scene view.
I'm not asking for pixel perfection, I would just like to make the resolution dependent on the current zoom level of the scene view camera. If there was a way to get that information, I think that would be enough.
There must be some EditorUtility function of the sort, since I remember, that it's possible to draw Handles and multiply their size by some editor function which will give a constant scale for any given zoom level.
Thanks for any suggestions!
Answer by Runalotski · Jul 22, 2015 at 11:37 PM
I am not sure if its the best solution but you could use Camera.WorldToScreenPoint() on two points to see how many pixles apart they are
if they are too far away, you can then re-draw the cuircle at a higher resolution, or reduce the resolution if the points are too close together.
you cloud call the function when ever camera.position changes or when the camera.fieldofView changes
Edit
Sorry what i posted would help in Game not the scene i miss understood what you was going for. maybe there is a similar function for where objects are in a viewport
i came across this that may get you started on a track
http://answers.unity3d.com/questions/63361/how-to-find-out-the-real-viewportscreen-size-in-sc.html
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
How to draw a line from the player to the nearest object? 0 Answers
(C#) Control time scale with an animation curve? 1 Answer
2 raycasts on the fpwalker/camera 1 Answer