zoukankan      html  css  js  c++  java
  • 渲染物体到一张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
    }
  • 相关阅读:
    网络摄像头RTSP协议视频平台EasyNVR升级版本后如何迁移原版数据?
    ubuntu下安装dosbox
    动态数组
    C风格字符串
    指针
    数组
    bitset
    迭代器iterator
    vector
    string--getline(),cctype
  • 原文地址:https://www.cnblogs.com/mrblue/p/4594802.html
Copyright © 2011-2022 走看看