【问题标题】:How to create a hole on a ground in Unity?如何在 Unity 的地面上创建一个洞?
【发布时间】:2021-01-10 06:27:09
【问题描述】:

我正在尝试制作像 Color Hole 这样的游戏。我创建了一个地面和一个 3d 圆柱体。我希望这个圆柱体像一个孔而不是一个实心圆柱体。在不使用 Blender 等的情况下如何做到这一点?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    对于 Unity 中的建模和网格原型设计,有一些非常酷的资源,例如 thisthis。 最实惠的解决方案当然是从您的建模程序中导入您想要的模型。

    使用 pro-builder(统一集成的建模工具)有望实现。然而事实并非如此。

    窗口->PackageManager->Probuilder 然后您需要启用实验功能: 编辑->首选项->ProBuilder

    然后有一个工具,它应该对网格进行联合、交叉和相减:

    但是它不起作用,至少在我尝试过的情况下,我得到了这个错误总是

    StackOverflowException:请求的操作导致堆栈溢出。 UnityEngine.ProBuilder.Csg.Plane.SplitPolygon

    (Unity 版本 2018.4.12)。也许可以检查统一版本是否存在问题,以及 pro-builder 方法是否适用于其他版本。

    【讨论】:

    • 我尝试使用 Probuilder 来实现。但是,它不允许我选择“启用实验功能”框。无论我点击多少次,该框始终是空的。
    • 太奇怪了。尝试在 Tools->Experimental 中搜索...也许在以后的统一版本中它已经存在...无论如何,实验工具似乎不起作用,所以没什么大不了的
    【解决方案2】:

    如果您将脚本附加到“洞”对象,您可以检测到其他对象进入 OnColliderEnter()。然后,使用 OnColliderStay() 方法,您可以将它们向下“通过”孔移动,然后销毁它们(或当它们通过孔时您想要发生的任何事情)。

    这是一种 hacky 解决方案,但如果您无法制作自定义资产,它会起作用。不过,它不会为您提供物理引擎交互,因此让对象真实地翻滚穿过孔将比它值得付出更多的努力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      相关资源
      最近更新 更多