Unity游戏引擎挖坑记之3d游戏2d显示管理(血条、飘血)(一)

需求:

实现角色的血条和大地图中显示掉血文本显示(飘血的位置不跟随产生对象运动)。

解决方案:

1、2d血条作为属性放置到3d对象身上。(2d血条的父节点是3d对象)。飘血文字的父节点是3d地图载体。

2、另外制作一个不需摄像机就能展示的Canvas,将血条和飘字的放置到该Canvas中。

方案实现分析:

方案1实现分析:

如果实现2d血条作为3d对象的属性,则该血条需要使用Canvas(Render Mode: WorldSpeace)作为载体,并且需要渲染摄像机。当前项目中只使用了一个透视摄像机(近大远小),如果使用该摄像机会出现2d血条UI的实际效果并不是真实效果(近大远小),并且会跟随着角色进行旋转效果。

如果再添加一个正交相机呢?

1、  再添加一个正交相机的话,因为角色移动并且之前的透视相机是跟着角色同步的,那么并且需要再次处理当前正交相机与角色同步。

2、  在添加一个相机, 需要再次渲染所有的需要显示的内容。

3、  并且需要调整该相机与透视相机的投影出来的可视区域一样。

方案二实现分析:

使用方案二,需要新建一个不需摄像机的Canvas(RenderMode: Screen Space - Overlay)。

血条需要从对象的世界坐标转化为屏幕坐标(需要放置在Update里面),因为需要保持与角色同步。

飘血文字同理放置,但是需要实现飘血文字在大地图上效果,需要在Update里面处理,

当摄像机移动的过程中,计算每一帧的偏移量,然后让所有的飘血效果反向运动即可。

总结:从性能,与简介性相比。采用方案二更合适。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值