using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; public class CubeMap : MonoBehaviour { public Shader DepthShader; private Camera see; public RenderTexture SeeMap; // Start is called before the first frame update void Start() { see = gameObject.AddComponent<Camera>(); see.aspect = 1; see.fieldOfView = 90; see.enabled = false; see.farClipPlane = 20; see.nearClipPlane = 0.1f; SeeMap = new RenderTexture(2048, 1024, 32, RenderTextureFormat.Depth); see.targetTexture = SeeMap; } private Texture2D tex = null; // Update is called once per frame void Update() { //see.SetReplacementShader(DepthShader, ""); //see.Render(); //if (!see.RenderToCubemap(SeeMap)) //{ // Debug.LogError("FAILED :("); //} //see.ResetReplacementShader(); //see.targetTexture = null; //see.Render(); //if (tex == null) //{ // tex = new Texture2D(1024, 1024, TextureFormat.ARGB32, false); //} // // //RenderTexture.active = SeeMap; //tex.ReadPixels(new Rect(0, 0, 1024, 1024), 0, 0); //RenderTexture.active = null; //byte[] png = tex.EncodeToPNG(); //FileStream f = File.Open("test.png", FileMode.OpenOrCreate); //f.Write(png, 0, png.Length); //f.Close(); see.transform.forward = Vector3.forward; see.transform.up = Vector3.up; see.rect = new Rect(0, 0.5f, 0.25f, 0.5f); see.Render(); see.transform.forward = Vector3.right; see.rect = new Rect(0.25f, 0.5f, 0.25f, 0.5f); see.Render(); see.transform.forward = Vector3.back; see.rect = new Rect(0.5f, 0.5f, 0.25f, 0.5f); see.Render(); see.transform.forward = Vector3.left; see.rect = new Rect(0.75f, 0.5f, 0.25f, 0.5f); see.Render(); see.transform.forward = Vector3.down; see.transform.up = Vector3.forward; see.rect = new Rect(0, 0, 0.25f, 0.5f); see.Render(); see.transform.forward = Vector3.up; see.transform.up = Vector3.back; see.rect = new Rect(0.25f, 0, 0.25f, 0.5f); see.Render(); } }