Здравствуйте уважаемые специалисты.
Я пишу кастомный тайловый рисовальщик. У меня присутствует такой код рисования сетки в экране едитора по размерам тайлов:
[CustomEditor(typeof(GameObject))]
public class SceneGUITest : Editor
{
[DrawGizmo(GizmoType.NotInSelectionHierarchy)]
static void RenderCustomGizmo(Transform objectTransform, GizmoType gizmoType)
{
if (isEnabled && isGrid)
{
Gizmos.color = Color.white;
Vector3 minGrid = SceneView.currentDrawingSceneView.camera.ScreenPointToRay(new Vector2(0f, 0f)).origin;
Vector3 maxGrid = SceneView.currentDrawingSceneView.camera.ScreenPointToRay(new Vector2(SceneView.currentDrawingSceneView.camera.pixelWidth, SceneView.currentDrawingSceneView.camera.pixelHeight)).origin;
for (float i = Mathf.Round(minGrid.x / gridSize.x) * gridSize.x; i < Mathf.Round(maxGrid.x / gridSize.x) * gridSize.x && gridSize.x > 0.05f; i+=gridSize.x)
Gizmos.DrawLine(new Vector3(i,minGrid.y,0.0f), new Vector3(i,maxGrid.y,0.0f));
for (float j = Mathf.Round(minGrid.y / gridSize.y) * gridSize.y; j < Mathf.Round(maxGrid.y / gridSize.y) * gridSize.y && gridSize.y > 0.05f; j+=gridSize.y)
Gizmos.DrawLine(new Vector3(minGrid.x,j,0.0f), new Vector3(maxGrid.x,j,0.0f));
SceneView.RepaintAll();
}
}
Проблема в том что пока нарисованных (объектов)тайлов на сцене немного то тормозов нет, а когда количество где то более двух сот объектов то сам Unity редактор начинает тормозить, как только отключаеш сетку то тормоза резко пропадают. Я не могу понять взаимосвязи количества объектов на сцене от наличия сетки на экране.
Подскажите в чём проблема может быть?
Upd:
Может это и не изза DrawGizmo, незнаю, но я нашол ещё одну зависимость - когда все объекты в сцене редактора отключаеш и заново включаеш то тормоза пропадают, но не надолго, со временем буквально в течении минуты тормоза опять появляются.