【问题标题】:How to draw marks on Unity 3D plane?如何在 Unity 3D 平面上绘制标记?
【发布时间】:2016-11-20 22:05:05
【问题描述】:

我是 Unity 的新手。对不起,如果我有初学者的问题。

我想在 Unity 中实现一个 3D 国际象棋游戏。我已经实现了一个包含整个 AI 的 C++ 共享库。我已经在 WPF 和 Android 中使用过这个库,并且已经过完美测试。现在轮到 Unity 了。

当用户选择一块时,应该显示它的下一步动作。

这些标记可以是灯光或图像。圆形或矩形。

一种方法是在棋盘的每个方格上设置 64 个标记,并以编程方式更改它们的可见性。

我个人更喜欢的另一种方法是以编程方式绘制标记。但我不知道如何在我的棋盘平面上画画。

请指导我。

【问题讨论】:

  • 您不应该进行绘图,这意味着为每一步重新绘制国际象棋纹理。相当消耗内存。另一个过程可能是使用带有附加着色器的投影仪。
  • @Everts 我已经搜索了一些,但我没有找到一个好的阅读参考。能给个链接吗?
  • 标记是什么意思?你能画出棋盘上一个简单的标记应该是什么样子的吗?
  • 我有几个可能的答案,但这真的取决于它的外观和行为方式。我想看样机。
  • @Programmer 我已经添加了你想要的图片。

标签: unity3d 3d draw


【解决方案1】:

最终结果(只是草图!)

一步一步

(我假设你已经有了棋盘)

1. 创建一个材质并如下图所示对其进行配置。请注意,反照率绿色是 50% 透明的:

2. 创建一个四边形并为其分配上面新创建的材质。然后设置 如下图所示:

3. 现在我们将添加发光效果。首先,我们需要关闭 通过切换到Good Quality 而不是Fantastic 来消除锯齿。

4. 其次,我们需要在主摄像头中启用HDR

5. 第三,我们需要导入Image Effects 包。这个包 是 Unity 附带的 Standard Assets 的一部分。这是 完全免费。如果你还没有,请在这里获取。 https://www.assetstore.unity3d.com/en/#!/content/32351
你只需要Image Effect 包。

6.现在将Bloom 效果添加到您的主摄像头。

7. 就是这样!如果您需要通过代码隐藏它,请参考 它并执行这行代码:

yourQuad.SetActive(false);

在此处查看更多信息: https://docs.unity3d.com/ScriptReference/GameObject.SetActive.html

8. 最后,复制该四边形以创建 64 个并定位它们 适当地。有2个技巧可以极大地帮助您在地狱中的生活 更简单:

快速复制一组对象:选择所有对象并按:Ctrl + D

启用边缘捕捉:选择您的四边形并按住V,然后将鼠标悬停在四边形的顶点上。你会看到它周围有一个白色的方块。拖动那个顶点,看看它的魔力。

9. 从这里开始,你的游戏逻辑就可以实现了。你可以存储 二维array(矩阵)中的所有四边形并对其进行操作 你自己,这就是我能想到的。祝你好运!

【讨论】:

  • 使用标准高光着色器并跳过步骤 3 到 6 怎么样?
  • @Everts:我刚试过!实际上,没有bloom,我还没有找到实现发光效果的方法。 HDR 只是为了使bloom 更好,但它需要关闭Anti-AliasingSpecular 只是替换 metallic 工作流的一种方式。如果您使用标准着色器,您将获得一个metallic 滑块。如果您使用 Standard (Specular setup) 着色器,则滑块将替换为 Specular 之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多