Сообщение от 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);
}
}
}