应用场景
游戏开发有时会有在UI界面(玩家装备界面)显示3D模型的需求。
实现原理
问题的前提是UI界面是个2D空间,可以展示2d图片,无法直接展示3D模型,如果要显示3D模型,就要把3D模型投影到2D图片。Unity的实现方式是把新增一个摄像机来拍摄目标3D模型,使用摄像机的输出作为RawImage放进UI界面中。
实现步骤
- project中新建一个RenderTexture,作为中间商,实时接收摄像机输出,并输入到图片中。设置空间为2D,分辨率调整为适当大小。
- 新增一个单独的Camera,设置位置远离主摄像头以免相互影响,删除其中无用的的Audio Listener组件。
- UI Canvas下新增RawImage对象,用于展示3D模型投影。
- 拖动新建的RenderTexture到Camera的输出Texture和RawImage的输入Texture中。建立摄像头和RawImage的实时联系。
- 把需要展示的3D模型放到新建的摄像头前,RawImage中就可以展示对应3D模型动画了。