Unity相关征服Unity3dUnity教程合集

【unity】普通游戏物体自适应

2017-09-09  本文已影响154人  黒可乐

写在前面,现在UI都不需要咱们写代码来做自适应了,但是咱们的UI界面里含有模型特效,简单的说就是3
d物体在UI界面做自适应,这些是怎么做自适应的,今天这里介绍两个解决方案,这些是怎么做自适应的,今天这里介绍两个解决方案,两种方案的区别就是是否使用单独相机渲染。这里我们使用王者荣耀其中的一些画面来做解析。使用的UGUI,unity版本是5.4.3f1。Canvas的渲染模式是相机渲染。

王者荣耀大厅

大厅中有一个有特效的按键,这里咱们不知道他这个特效是用什么做的,我们就假设他用的骨骼动画与粒子系统。这样一个界面是不属于UI的。

王者荣耀角色展示

这是展示一个3d人物模型。在游戏中经常会有这样的而操作。

第一种不使用单独摄像机

原理
通过UI自适应的改变的rect大小,计算出rect变化的比例,然后修改游戏物体的scale的小大。具体的编写的代码在这里

用法

需要把要自适应的物体新建一个空的游戏物体命名为FxAutoSize把框住。如下图。

Paste_Image.png

然后再把这个FxAutoSize的锚点设置成自适应,添加AutoSize脚本。

Paste_Image.png

点击“设置原始大小参照物”按钮,会生成一个OriginalSize参照空物体。再把需要自适应的物体赋值给OriginalTrans即可。

这里可以设置每一帧自适应与开始自适应。

第二种使用单独摄像机

原理
这个方式真的是厉害了,不需要写一句代码。
跟游戏中小地图的做法一个原理,使用的RenderTexture,使用RawImage把RenderTexture呈现出来,就作为一个UI来做自适应了。

用法

新建一个摄像机,把相机的Size调整到游戏物体适合大小。

新建一个RenderTexture,把RenderTexture赋值给TargetTexture。

新建一个GameObject,增加一个RawImage组件,把RenderTexture赋值给RawImage。设置自适应锚点即可。

总结

很明显第二种要好一些。简单一些。这些游戏物体会有粒子系统,不能让粒子满屏幕跑,所以需要做一个遮罩,这个时候用第二种方式就可以很简单的控制摄像机的size来达到这个效果。当然第一种方式也可以使用shader来实现,但是这个就会更加的繁琐。不好控制。
就先写这么多吧。

上一篇 下一篇

猜你喜欢

热点阅读