Hi there, I wish to render my entire GameObject and its children to a render texture then place the result at the position of the gameobject.
Two issues, one is that it's creating a magic mirror effect, like I can see the frame inside itself over and over.
Other issue is that it crashes after like 10s of running.
What am I doing wong?
Here is my code:
{
var renderers = GetComponentsInChildren<SpriteRenderer>();
foreach (var renderer in renderers)
{
renderer.enabled = true;
}
_renderTextureRenderer.enabled = false;
var pos = transform.position;
transform.position = new Vector3(1000,1000,0);
var camPos = Camera.main.transform.position;
Camera.main.transform.position = new Vector3(1000,1000,-10);
var renderTexture = new RenderTexture(Screen.width, Screen.height, 32);
Camera.main.targetTexture = renderTexture;
Texture2D screenshot = new Texture2D(Screen.width, Screen.height, TextureFormat.RGBA32, false);
Camera.main.Render();
RenderTexture.active = renderTexture;
screenshot.ReadPixels(new Rect(0,0, Screen.width, Screen.height), 0, 0);
screenshot.Apply();
Camera.main.targetTexture = null;
RenderTexture.active = null;
Destroy(renderTexture);
_renderTextureRenderer.sprite = screenshot.CreateSprite();
transform.position = pos;
Camera.main.transform.position = camPos;
foreach (var renderer in renderers)
{
renderer.enabled = false;
}
_renderTextureRenderer.enabled = true;
}```