【发布时间】:2018-03-31 18:37:48
【问题描述】:
我在为生成的游戏对象计算位置时遇到问题(实例化)。有: 1)立方体。 2) 有地板和墙壁的房间。 3)点击鼠标的用户。立方体有刚体和对撞机,所以当我在用户点击时生成它时,立方体一半在地板或墙壁内,物理将它推开。
点击点 == 立方体的中心。所以它一半在另一个对象内生成。
问题是如何以正确的方式计算生成位置?
示例图片:
【问题讨论】:
我在为生成的游戏对象计算位置时遇到问题(实例化)。有: 1)立方体。 2) 有地板和墙壁的房间。 3)点击鼠标的用户。立方体有刚体和对撞机,所以当我在用户点击时生成它时,立方体一半在地板或墙壁内,物理将它推开。
点击点 == 立方体的中心。所以它一半在另一个对象内生成。
问题是如何以正确的方式计算生成位置?
示例图片:
【问题讨论】:
您可以尝试像这样使用Collider.bounds:
Collider col = cube.GetComponent<Collider>();
cube.position = mouseClickPos - col.bounds.extents;
尚未测试代码,但希望您明白这一点。你可以在这里找到更多关于Bounds的信息:https://docs.unity3d.com/ScriptReference/Bounds.html
【讨论】:
立方体的位置取自中心,要解决此问题,您可以更改立方体的枢轴点。创建空的游戏对象将空的游戏对象带到立方体的边缘并将立方体放入其中。
【讨论】: