1、相机 为镜像相机(orthographic)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Camerashot : MonoBehaviour
{
private Texture mTargetTexture = null;
public GameObject link_gameobj = null;
public int texWidth = 3840;
public int texheight = 1920;
public string MapPath = “”;
public void GenMap()
{
if (link_gameobj == null)
return;
Camera camera = GetComponent<Camera>();
// camera.targetTexture = RenderTexture.GetTemporary(texWidth, (int)(texWidth * 9.0f / 16.0f), 24);
camera.targetTexture = RenderTexture.GetTemporary(texWidth, texheight, 24);
Debug.Log("相机名称=="+camera.name);
mTargetTexture = camera.targetTexture as Texture;
camera.Render();
RenderTexture.active = camera.targetTexture;
Texture2D virtualPhoto =
new Texture2D(texWidth, texheight, TextureFormat.RGB24, false);
// false, meaning no need for mipmaps
virtualPhoto.ReadPixels(new Rect(0, 0, texWidth, texheight), 0, 0);
RenderTexture.active = null; //can help avoid errors
camera.targetTexture = null;
// consider ... Destroy(tempRT);
byte[] bytes;
bytes = virtualPhoto.EncodeToPNG();
if (transform.parent.parent)
{
MapPath = "";
string scene_name = transform.parent.parent.gameObject.name;
string cam_name = link_gameobj.name;
string _name = "_unity_" + scene_name + "_" + cam_name;
_name = "/" + _name + ".png";
System.IO.File.WriteAllBytes(
Application.dataPath + _name, bytes
);
MapPath = Application.dataPath + _name;
}
else
{
Debug.Log("dap");
// System.IO.File.WriteAllBytes(
// Application.dataPath + "/GenerateMap.png", bytes
// );
// MapPath = Application.dataPath + "/GenerateMap.png";
}
camera.targetTexture = null;
}
}