UnityUGUI功能之三渲二

简介

在项目开发中有时候你会遇到将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;
}

注意事项

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值