Показать сообщение отдельно
Старый 24.06.2012, 19:58   #386
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от WISHMASTER35 Посмотреть сообщение
Вообще не понял как отрендерить модель в EditorWindow с помощью Camera.Render.
Render это не статический метод. Получается камеру брать надо из сцены, а в сцене ее может и не быть.
И даже если вызвать Render у камеры из сцены, то отрендерится вся сцена и все равно не в мое окно(:
using UnityEditor;
using UnityEngine;

public class 
ModelRendererWindow : EditorWindow
{

    [
MenuItem("Window/render")]
    public static 
void CreateWin()
    {
        var 
win = CreateInstance<ModelRendererWindow>();
        
win.autoRepaintOnSceneChange = true;
        
win.Show();
    }

    private 
Camera cam;
    private 
GameObject cube;
    private 
GameObject parentGO;

    
void OnEnable()
    {
        
cam = new GameObject("Cam", typeof(Light), typeof(Camera)).camera;
        
cam.light.cullingMask = cam.cullingMask;
        
cam.light.range = 10;

        
cam.gameObject.hideFlags = HideFlags.HideAndDontSave;
        
cam.enabled = false;
        
cam.transform.position = new Vector3(0, 0, -3);
        
cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        
cube.hideFlags = HideFlags.HideAndDontSave;
        
cube.transform.rotation = Random.rotation;
        
parentGO = new GameObject("parent");
        
parentGO.hideFlags = HideFlags.HideAndDontSave;
        
cube.transform.parent = parentGO.transform;
        
cam.transform.parent = parentGO.transform;
        
parentGO.transform.position = Vector3.one * 70000f;
    }

    
void OnDisable()
    {
        
DestroyImmediate(parentGO);
    }

    
void OnGUI()
    {
        if (
Event.current.type == EventType.Repaint)
        {
            var 
rect = new Rect(0, 0, position.width, position.height);
            
Handles.SetCamera(rect, cam);
            
Handles.DrawCamera(rect, cam);
        }
    }

} 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
WISHMASTER35 (24.06.2012)