Unity:Collider.bounds.extends.x 自最新更新以来返回半径 - 为啥?

Posted

技术标签:

【中文标题】Unity:Collider.bounds.extends.x 自最新更新以来返回半径 - 为啥?【英文标题】:Unity: Collider.bounds.extends.x returns radius since latest update - why?Unity:Collider.bounds.extends.x 自最新更新以来返回半径 - 为什么? 【发布时间】:2018-04-15 23:00:56 【问题描述】:

今天我将我的项目更新到版本 2017.2.0f3(之前在 2017.1.1f1 上工作)。

这...

offsetX = objectCollider.bounds.extents.x;

...用于返回我的 SphereCollider 在世界空间中的边界,但现在它只返回组件的半径。文档说它应该返回世界空间的边界。

当整个 GameObject 重新缩放时,我的 SphereCollider 的半径总是相同的。在补丁之前用于返回正确值的每个方法现在只返回可以在检查器中设置的半径。

我是否遗漏了什么,这是一个错误还是自上次补丁以来发生了变化?我对这个有点迷茫。

【问题讨论】:

【参考方案1】:

这最近没有改变。 Colliderbounds 属性在世界空间中返回 Bounds 对象,如文档所述。从Bounds 对象,您可以使用center 属性来获取其世界空间Vector3 位置,但您正在查看extents 属性,该属性将为您提供有关其大小的信息,因此这些值位于本地空间中.

如果您想要碰撞器边界的世界空间信息的 x 分量,请使用:

objectCollider.bounds.center.x;

如果您想要碰撞器边界的世界空间坐标,您需要将其center 属性与您从extents 属性中获得的大小信息结合起来。

【讨论】:

是的,..center 将返回世界空间中的位置,但我需要世界空间中对撞机的扩展或大小。这不像以前的补丁那样工作..我只是得到半径(本地空间中的大小) @Pft extents 对象只是一个大小。您可以使用它并将其与 center 属性结合起来以获取世界空间坐标。这在 Unity 中从未改变。

以上是关于Unity:Collider.bounds.extends.x 自最新更新以来返回半径 - 为啥?的主要内容,如果未能解决你的问题,请参考以下文章

unity和unity3D的区别

Unity3D资源文件 ③ ( Unity 资源包简介 | 导出 Unity 资源包 | 导出资源包的包含依赖选项 | 导入 Unity 资源包 | Unity 资源商店 )

Unity前景如何?现在unity还能找到工作吗?

Unity学习笔记:unity介绍

unity游戏unity 攻击范围绘制圆圈怎么做

unity如何用脚本刷新窗口