Сообщение от WISHMASTER35
Все бы хорошо, но z тест все равно не работает(: А у тебя работало?
|
Попробуй так (но для этого надо Pro):

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()
{
parentGO = new GameObject("parent");
parentGO.hideFlags = HideFlags.HideAndDontSave;
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;
cube.transform.parent = parentGO.transform;
cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.hideFlags = HideFlags.HideAndDontSave;
cube.transform.rotation = Random.rotation;
cube.transform.position = new Vector3(0,0,0.1f);
cube.transform.parent = parentGO.transform;
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 rt = RenderTexture.GetTemporary((int) position.width, (int) position.height, 24);
cam.targetTexture = rt;
RenderTexture.active = rt;
cam.clearFlags = CameraClearFlags.SolidColor;
cam.backgroundColor = new Color32(49,77,121,255);
cam.Render();
RenderTexture.active = null;
cam.targetTexture = null;
GUI.DrawTexture(new Rect(0, 0, position.width, position.height),rt);
RenderTexture.ReleaseTemporary(rt);
}
}
}