【问题标题】:Physical object is halfly inside another object when spawn. How to set point of spawn right?生成时,物理对象一半位于另一个对象内部。如何正确设置生成点?
【发布时间】:2018-03-31 18:37:48
【问题描述】:

我在为生成的游戏对象计算位置时遇到问题(实例化)。有: 1)立方体。 2) 有地板和墙壁的房间。 3)点击鼠标的用户。立方体有刚体和对撞机,所以当我在用户点击时生成它时,立方体一半在地板或墙壁内,物理将它推开。

点击点 == 立方体的中心。所以它一半在另一个对象内生成。

问题是如何以正确的方式计算生成位置?

示例图片:

【问题讨论】:

    标签: c# unity3d geometry


    【解决方案1】:

    您可以尝试像这样使用Collider.bounds:

    Collider col = cube.GetComponent<Collider>();
    cube.position = mouseClickPos - col.bounds.extents;
    

    尚未测试代码,但希望您明白这一点。你可以在这里找到更多关于Bounds的信息:https://docs.unity3d.com/ScriptReference/Bounds.html

    【讨论】:

      【解决方案2】:

      立方体的位置取自中心,要解决此问题,您可以更改立方体的枢轴点。创建空的游戏对象将空的游戏对象带到立方体的边缘并将立方体放入其中。

      【讨论】:

      • 是的,我试过了,但问题是如果有 2 个表面(例如地板和墙壁)或更多表面会怎样。就像图片中一样。这个技巧只适用于一个。
      猜你喜欢
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多