简介

在项目开发中有时候你会遇到将3D场景中的画面渲染到2D中,例如摄像机的功能,3D人物展示在个人信息面板中等功能,自己也将自己的开发思路进行总结并分享,希望大佬们能多指导,小菜们也能找到一种开发思路

用到的API

----RenderTextureDescriptor

这是一个包含了创建纹理所需的信息的结构体。官方介绍到它可以被复制,缓存和重用。
输入的宽高单位为像素

----RenderTexture.GetTemporary

申请一个临时渲染的纹理,需要RenderTextureDescriptor来提供纹理的属性

----RenderTexture.ReleaseTemporary

释放一个临时渲染的纹理。再重复生成临时纹理时,记得将不需要的纹理进行释放

个人案例代码

下面展示一些

//创建纹理代码
static RenderTextureDescriptor weaponRTD = new RenderTextureDescriptor(244, 433, RenderTextureFormat.Default, 24);
public static void Create3R2(Camera camera, RawImage rawImage)
{
    Release3R2(camera, rawImage);
    RenderTexture rt = (RenderTexture.GetTemporary(weaponRTD));
    camera.targetTexture = rt;

    camera.enabled = true;
    rawImage.texture = rt;
    rawImage.color = new Color(1, 1, 1, 1);
}
//释放纹理代码
public static void Release3R2(Camera camera, RawImage rawImage)
{
    rawImage.color = new Color(1, 1, 1, 0);
    RenderTexture rt = camera.targetTexture;
    camera.targetTexture = null;
    rawImage.texture = null;
    if (rt != null)
        RenderTexture.ReleaseTemporary(rt);
    camera.enabled = false;
}

注意事项

最主要的就是别忘记把临时分配的纹理给释放掉

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐