渲染物体到一张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

}

 

你可能感兴趣的:(itext)