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
    }
  • 相关阅读:
    【 SSH 配置参考】
    【 SSH 实例】使用ssh开发的简单项目
    【 Hibernate 】Hibernate的session更新和删除失败问题
    【 SSH 整合】Spring、Struts、Hibernate基本整合
    Tower是个不错的项目管理开放平台
    随便写写,四年多了第一次在博客园上发表
    asp.net获取服务器绝对路径和相对路径
    342. 4的幂
    283. 移动零
    268. 缺失数字
  • 原文地址:https://www.cnblogs.com/mrblue/p/4594802.html
Copyright © 2011-2022 走看看