单击网格Unity时如何放置对象

时间:2018-03-13 14:08:07

标签: c# unity3d mesh

所以我使用perlin noise生成了这个网格

Mesh Screenshot

我想要做的是能够点击在游戏中放置一个对象。我的最终目标是拥有一个菜单,以便您可以放置​​不同的对象,但我想尝试让多维数据集工作。我试过RayCasting:

y

我无法让它工作......我也不知道如何使用这个脚本(比如放置它的对象)我试着制作一个立方体并将脚本放在那个但是它不起作用。我没有错,它只是没有用。

我的网格上还有一个网格对撞机,我的立方体上有一个盒子对撞机。

2 个答案:

答案 0 :(得分:1)

我发现您正在关注YouTube的“过程土地质量生成”教程,我想说这是了解过程内容生成基础知识的绝佳方法。

对于您的问题,我建议您在地形的顶部添加一个摄像头,从该位置可以用鼠标指向要实例化对象(例如立方体)的位置。您将需要一个将光线投射到地砖的功能。检查其游戏对象的标签是否为“地形”,并检查该当前位置是否没有水。如果地形检查返回true,而水检查返回false,则在射线投射的“命中”位置实例化所需的对象。

答案 1 :(得分:0)

您可以将脚本放在所需的任何对象上。我建议照相机。将这个脚本组件添加到摄像机后,将您要实例化的网格拖到脚本中看到的“ objectToinstantiate”插槽中。

然后看看它是否有效,并在性能上提高if (Input.GetMouseButtonDown(0)),例如@Basile所说。

注意:此脚本将在游戏视图的游戏模式下起作用-而不是在编辑器场景视图中。

如果您也想这样做,则应在[ExecuteInEditMode]行上方添加public class ...。但是要小心那些脚本,有时很难停止这些脚本:P