【问题标题】:Unity create a sprite cubeunity 创建精灵立方体
【发布时间】:2018-07-10 19:30:09
【问题描述】:

我有一个 2d 平面图像纹理,我想在我的画布清单 UI 中将其绘制为立方体,而不生成由网格构成的实际立方体。最有效和最简单的方法是什么?

我曾经在 android SDK 中遇到过这个问题,并通过创建一个侧面分离的立方体图像来解决它,然后在每个图像上绘制纹理的像素,这可能非常昂贵,我不确定它会不会团结一致(或如何)工作(这是解决方案:Create 3D cube with Canvas

【问题讨论】:

  • 你为什么不想用一个真正的立方体来渲染它呢?它在动吗? (如果没有,只需渲染一次,抓取屏幕并将结果保存为 PNG,然后使用结果。)
  • 顺便说一句,在 Unity 中你真的不必抓取屏幕(虽然你可以),只需使用渲染纹理。

标签: c# unity3d


【解决方案1】:

以多种方式做到这一点很简单:

(1) 通常,当您有一个 3D 对象(例如,立方体、龙等)时,您想在库存列表中“用作图标” - 您只需这样做。在单独的相机(例如“图标相机!”)上使用 3D 项目并正确定位它真的非常容易。

这是典型 Unity 场景中非常基本的事情,你们都需要掌握这些技术。

(2) 您确实可以使用“渲染纹理”,然后“制作”所需图像的 PNG(同样,从实际的 3D 立方体开始)。

同样,这些是典型 Unity 场景中的基本内容,你们都需要掌握这些技术。

真正的“1”更容易,没有理由不这样做。

它在 Unity 游戏(或任何平台)中看到的“菜单”等中非常常见。


一个技巧是“以正确的顺序”获取您需要的相机图像,因此下面没有隐藏任何内容,技巧是 Camera 中的“深度”设置

https://docs.unity3d.com/560/Documentation/Manual/class-Camera.html

“深度相机在绘制顺序中的位置。具有较大值的相机将被绘制在顶部具有较小值的相机之上。”

(无论我使用 Unity 工作了多少小时,我都不记得那是哪种方式!:))

当您刚接触 Unity(或任何游戏引擎)时,一件令人惊讶的事情是您经常拥有“许多相机”。

你可能只有一个小摄像头,除了制作“一个小的黑色区域”之外什么都不做,然后在上面再放一个摄像头,或者其他什么。

这是一个“集合”。


在 Unity 中使用 UI 工作时的绝对关键提示...

https://stackoverflow.com/a/36268018/294884

【讨论】:

  • 感谢您的帮助,到目前为止我对第一个解决方案的唯一问题是立方体将被绘制在画布下并且通过设置屏幕空间相机我无法使用拖动事件因为 Input.mousePosition 不再相关了。我会尝试找出修复方法,但总体而言,您的解决方案运行良好
  • @SpoocyCrep (1) 我对此进行了修改,(2) 抱歉,我的回答非常“简短”!
  • @Fattie - 小提示:您可以将“深度”想象为按升序(0、1、2 等)进行渲染。之后绘制的任何内容都会与之前绘制的任何内容重叠。这适用于着色器渲染顺序、UI 子索引、精灵排序顺序。想象一下您将一堆卡片叠放在一起 - 顶部的卡片(较高的索引)与之前的卡片重叠。
猜你喜欢
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
相关资源
最近更新 更多