渲染物体到一张UITexture上
把这个脚本挂到一个Camera上
using UnityEngine; using System.Collections; [RequireComponent(typeof(Camera))] public class UIModelCamera : MonoBehaviour { //Render Texture属性 public int Width=256; public int Height = 256; public int Depth = 16; //所要观看的模型 public GameObject Model; //距离模型所在位置的偏移 public Vector3 Offset; //观看模型所在位置的偏移 public Vector3 LookAtOffset; //哪个UITexture要使用这个相机所渲染的Render Texture public UITexture Texture; private RenderTexture mRenderTexture; private Camera mCamera; void Awake() { mCamera = gameObject.GetComponent<Camera>(); mRenderTexture = new RenderTexture(Width, Height, Depth); mCamera.targetTexture = mRenderTexture; } // Use this for initialization void Start () { SetModel(Model); SetTexture(Texture); } void OnDestroy() { Destroy(mRenderTexture); } //设置所有观看的模型 public void SetModel(GameObject obj) { Model = obj; if(null!=Model) { gameObject.transform.position = Model.transform.position + Offset; gameObject.transform.forward = Model.transform.position + LookAtOffset - gameObject.transform.position; mCamera.cullingMask = 1<<Model.layer; } } // public void SetTexture(UITexture texture) { Texture = texture; if (null != Texture) { Texture.mainTexture = GetRenderTexture(); } } public RenderTexture GetRenderTexture() { return mRenderTexture; } #if UNITY_EDITOR void Update() { SetModel(Model); SetTexture(Texture); } #endif }