【问题标题】:How to draw on a 3D game object in Unity [closed]如何在 Unity 中绘制 3D 游戏对象 [关闭]
【发布时间】:2023-04-04 06:56:01
【问题描述】:

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

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

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

【问题讨论】:

  • 可以附加对象吗? answers.unity3d.com/questions/58486/…
  • 简单的方法,在点击位置实例化一个游戏对象,有效的方法,在用户点击的精灵上绘制“弹孔”,并在用户点击时不断修改精灵......但是这个对于 SO 来说,这并不是一个真正的问题,因为您没有展示您尝试过的内容和无效的内容。您应该尝试一下,如果它不起作用,请具体询问。 stackoverflow.com/help/how-to-ask
  • 我是 Unity 新手。我的想法似乎都付出了很大的努力(都涉及手动移动圆圈),这就是为什么我想看看是否有一种简单的方法可以在 Unity 中实现这一点。
  • @Mokey 这可能正是我想要的。它提出了一些关于我如何获得正确相对位置的问题,但我会尝试并进一步研究。谢谢!
  • @Nullqwerty 这通常称为绘制贴花。贴花是 2D 解决方案 - 您可以将图像平铺在 3D 对象的表面上。

标签: c# unity3d gameobject


【解决方案1】:

正如上面的 cmets 中提到的,使用转换父级可以完美地处理这个问题,只需要一行代码:

sphere.transform.parent = cube.transform;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多