开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,[点击查看活动详情]
前言
在游戏开发中,角色选择界面是我们经常会遇到的需求,尤其是在RPG品类的游戏中此类功能经常出现。其中需要用到一个核心技术点:将3D模型显示在2D UI上(这里指的是3D类游戏,2D游戏并不会涉及)。本篇将介绍如何在Unity游戏引擎中实现此功能。
准备工作
- Unity 2019.4.21.f1c1
- 熟悉UGUI
- 根据需求搭建UI界面
图中绿色框线的区域就是我们要显示3D模型的区域。
实现方法
在Unity中实现将模型显示在UI上的方法有多中,笔者这里会选择一种较为常用的方法来作为演示,其主要步骤如下:
- 1、选择单独创建一个Camera来拍摄3D模型
- 2、创建RenderTexture
- 3、并将拍摄到的画面绘制在一张RenderTexture上
- 4、在UI上添加RawImage组件,将RenderTexture赋值到RawImage的Texture上
- 5、根据显示效果调整相机位置与模型大小
详细步骤
- 1、将3D模型拖拽到场景中,为其设置一个Layer,例如Role(Layer不存在自己添加)
- 2、在Hierarchy面板添加一个Camera用来拍摄3D模型,调整其位置到合适角度。
- 3、选中刚刚创建的Camera,在Inspector面板将Camera的Clear Flags设置为Solid Color,Culling Mask设置为Role,让该摄像机值渲染Role这一层。
- 4、在Project面板创建一个RenderTexture,将其拖拽赋值给Camera的Target Texture。
- 5、在Canvas下添加一个RawImage,调整到合适大小。
6、将RenderTexture拖拽赋值到RawImage的Texture下。
7、根据显示效果,调整相机角度,模型等。
最后
值得注意的是创建完Camera之后,要移除它的Audio Listener组件,否则运行时会有Log疯狂输出,因为一个场景下只能存在一个Audio Listener。将模型显示在2D UI上的方法远不止本文中的方法,还可以将3D模型设置为2D Layer,不过这种方法也有弊端,大家可以根据自己的实际需求选择适合自己的方式来实现即可。OK,本篇就到这里。