2016-11-19 428 views
0

我是Unity新手。对不起,如果我有一个初学者的问题风格。如何在Unity 3D平面上绘制标记?

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

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

Chessboard image

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

要做到这一点的一种方法是每个棋盘棋盘格有64个标记并以编程方式更改其可见性。

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

请指导我。

+0

你不应该做绘画,这将意味着重绘每次移动的国际象棋纹理。消耗很大的内存。另一个过程可能是使用投影仪和一个附加着色器。 – Everts

+0

@Everts我搜索了一点,但我还没有找到一个很好的参考阅读。你能给我一个链接吗? –

+1

标记是什么意思?你可以把棋盘上的简单标记看起来应该是什么样子? – Programmer

回答

0

最终结果(仅有的SketchUp!)

enter image description here

STEP BY STEP

(我假定你已经有了一个棋盘)

1.创建物料&配置它就像在下面的图像。需要注意的是绿色的反照率是50%透明:

enter image description here

2.创建四&为它分配新创建的材料上。然后设置 它像下面的图片中:

enter image description here

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

enter image description here

4.其次,我们需要在主摄像头,使HDR

enter image description here

5.第三,我们需要导入Image Effects包。此软件包 是Unity随附的Standard Assets的一部分。它是完全免费的 。如果你没有在这里得到它。 https://www.assetstore.unity3d.com/en/#!/content/32351
您只需要Image Effect包。

enter image description here

6.现在添加Bloom效果,你的主摄像头。

enter image description here

7.这就是它!如果你需要通过代码来隐藏它再拿到参考 它和执行这行代码:

yourQuad.SetActive(false);

查看更多在这里: https://docs.unity3d.com/ScriptReference/GameObject.SetActive.html

最后,复制该四创建64个&正确地定位它们 。有2个技巧,可以帮助你的生活在地狱里很多 简单:

要快速复制一组对象的:全部选中,然后按:Ctrl + D

要启用边缘扣:选择您的四边形并按住V,然后将鼠标悬停在四边形的顶点上。你会看到一个白色的正方形。拖动那个vetex并看到魔法。

9.从此,它是您的游戏逻辑来实现。您可以将 中的所有四边形存储在二维array(矩阵)中,并自己操纵它 ,这一切我都能想到。祝你好运!

+0

如何使用标准镜面着色器并跳过步骤3到6? – Everts

+0

@Everts:我刚试过!事实上,我没有找到一种方法来实现没有“开花”的发光效果。 'HDR'只是为了让'bloom'更好,但它需要关闭'Anti-Aliasing'。 “Specular”只是取代“金属”工作流程的一种方式。如果您使用标准着色器,则会给您一个“金属”滑块。如果使用标准(高光设置)着色器,则将滑块替换为“高光”。 –