2. 指定 2D 中的 TopLeft 和 BottomRight 来表示模型渲染到 UI 的区域。
3、将UIViewPort脚本挂在之前的3D相机上。 几个变量如图所示。
4、结果是这样的。
注意事项:
1. 3D相机的深度大于2D相机的深度。
2. 3D相机的Clear Flags需要设置为Depth Only或Dont Clear。
在mmo中,我们通常有在GUI上显示3D模型的需求,比如查看角色装备的界面。 我在网上搜了一下,得到的结果都是直接将模型绑定到UI的指定位置,最多添加一个摄像头来控制2D渲染和3D模型渲染的层级关系。 NGUI和Daikon Forge的Demo中也是这样做的。 这是比较直接和简单的。 使用新的相机并指定渲染内容和级别确实可以在一定程度上解决模型和GUI的遮挡问题。 但这种方法并不完美。 如果界面太多,模型与UI的匹配将是一件不可能完成的任务。
我的方法是使用 RenderTexture。 也就是创建一个RenderTexture(具体方法网上可以轻松搜到)3D场景游戏策划,创建一个相机并指定其绘制目标为RenderTextureunity 道具模型,这样相机渲染的内容就会绘制在这个RenderTexture上。 我们可以将这个RenderTexture作为普通纹理分配给UI。 例如,我使用Daikon Forge,因此我可以创建一个dfTextureSprite,然后将其Texture属性的值设置为renderTexture。
当我们打开查看角色装备的界面时,我们创建一个角色模型unity 道具模型,并指定新相机的位置(调整坐标使其能够正常显示),这样我们的UI上就可以显示一个3D模型了。 并且当打开新的界面(比如装备提示界面)时,3D模型会停留在后面,不会显示在前面。
同样的方法在预览技能效果界面中,小窗口中出现了一个场景。
文章来源:https://blog.csdn.net/e295166319/article/details/54864999