Показать сообщение отдельно
Старый 15.05.2016, 15:01   #2372
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Никто не знает как в инспекторе отрисовать интерактивное превью GameObject'а?
Вот чтобы меш отрисовать есть класс PreviewRenderUtility.

    public override void OnInteractivePreviewGUI(Rect rect, GUIStyle background) {
        if(Event.current.type == EventType.MouseDrag) {
            angles.x += Event.current.delta.y;
            angles.x = Mathf.Clamp( angles.x, -60, 60 );
            angles.y += Event.current.delta.x;
            Event.current.Use();
        }

        if(Event.current.type == EventType.Repaint) {
            previewRender.m_Camera.transform.position = Vector3.zero;
            previewRender.m_Camera.transform.rotation = Quaternion.Euler( angles );
            previewRender.m_Camera.transform.Translate( 0, 0, -10 );
            previewRender.m_Camera.farClipPlane = 100;

            previewRender.BeginPreview( rect, null );

            Vector3 pos = -mesh.bounds.center;
            for(int i = 0; i < mesh.subMeshCount; i++) {
                previewRender.DrawMesh( mesh, pos, Quaternion.identity, materials[i], i );
            }

            previewRender.m_Camera.Render();
            var texture = previewRender.EndPreview();
            GUI.DrawTexture( rect, texture );

            Event.current.Use();
        }
    }
А как GameObject отрисовать не ясно. Можно конечно в тупую достать из него все меши и их рисовать. Но может есть способ по лучше?
(Offline)
 
Ответить с цитированием