UGUI之在UI上使用RenderTexture显示模型+AlphaBlend特效

本文介绍了如何在Unity的UGUI中利用RenderTexture显示3D模型,并结合AlphaBlend特效。通过示例展示了如何解决因摄像机大小或FOV变化导致的调整Sprite尺寸的问题,提供了一个自动适配摄像机区域的脚本解决方案。
摘要由CSDN通过智能技术生成

UGUI之在UI上使用RenderTexture显示模型+AlphaBlend特效


在UI上显示模型无非就是2种。

1.在两个UI摄像机中夹一层3d摄像机,利用摄像机的Viewport Rect属性对模型进行裁切。

2.使用RenderTexture渲染在RawImage后显示在UI上。

我上一个项目就是采取第一种方法,用起来很不舒服。因为有很多效果都做不了,比如就是UI上盖模型,在盖UI,再盖模型这种,还有就是在滑动列表中显示模型,滑动裁切的话都很麻烦。

今天我想说的就是第二种,使用RenderTexture的方式来渲染模型。

先说缺点:

1.为了保证显示上的效果RenderTexture的文件区域必须大于RawImage的区域,我们目前用的是乘2倍。比如RawImage的区域是512X512,那么就得创建一个1024X1024大小的RenderTexture才能保证渲染效果。

2.如果人物身上有一些特殊的效果,比如outline描边这样的,放在RenderTexture上就是达不到效果。

3.如果模型身上带有AlphaBlend这样的特效,因为AlphaBlend要和背景做混合,而RenderTexture不像Camera那样有背景,显示上就会有 问题。(下面我会说我目前是怎么解决的)

优点的话,就很爽了。完全和UI一样,层级顺序,列表中显示模型、裁切、等等都很方便了。

RenderTexture显示AlphaBlend特效的方法

因为AlphaBlend特效需要和背景做混合,所以我们可以给它后面垫一个底图。这样就能解决在RenderTexture上显示带AlphaBlend的特效的模型。

创建一个Sprite 可以直接把UI的Sprite放上去。如果模型带特效就用Sprite,如果模型不带特效,完全可以用之前UI的制作方式,很方便灵活的切换它。

1.png (53.84 KB, 下载次数: 0)

下载附件  保存到相册

2017-4-5 10:15 上传




如下图所示,Game视图中显示的效果,这个翅膀的火焰特效就是alphablend

2.png (160.93 KB, 下载次数: 0)

下载附件  保存到相册

2017-4-5 10:15 上传




如下图所示,因为底图不止一张,大家看到下面还有好几张花纹了吗?都可以用Sprite2d叠在下面。

3.png (308.29 KB, 下载次数: 0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值