如何在 Unity 中绘制 3D 游戏对象

How to draw on a 3D game object in Unity

我的 Unity 3D 应用程序(C# 脚本)中有一个 3D 立方体(带有 material 的游戏对象)。如果用户单击立方体,我希望在用户单击鼠标的确切位置处在立方体上绘制一个红色小圆圈。立方体的位置可能会改变,因为它可以在板上移动,但圆圈应该留在立方体上的正确位置,就像贴在上面的贴纸一样。另一种思考方式,假装这是一个角色,他们刚刚被枪杀。弹孔跟随那个角色移动。

在 Unity 中实现此目标的最佳方法是什么?理想情况下,一旦绘制完成,我就不必在立方体四处移动时继续重新计算圆圈的位置(我想这会随着时间的推移而变得困难)。我只想把它粘在立方体上,再次像贴纸一样。

注意:在任何给定时刻,这些圆圈只会有 20 个左右,因此性能不是一个大问题。

正如上面评论中提到的,使用转换父级完美地处理了这个问题,只用了一行代码:

sphere.transform.parent = cube.transform;