首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity |返回相同值的CircleCollider2D.radius

Unity |返回相同值的CircleCollider2D.radius
EN

Stack Overflow用户
提问于 2017-03-17 18:56:47
回答 1查看 748关注 0票数 0

我在Unity上有一个项目,在那里我有一个2D空间世界,玩家(宇宙飞船)受到周围行星引力的影响。但我使用的是牛顿引力定律(F=G*((M*m)/r^2)),这个定律的问题是,引力在整个水平上都是活跃的。

所以我使用影响球来获得一个极限,关于重力会在哪里停止影响宇宙飞船,为了做到这一点,我需要知道行星的半径。

问题是,我的行星并不都有相同的大小(或“规模”),但预制的有。因此,相对于原始比例,CircleCollider组件的半径为1.5。无论比例如何,它都保持不变,即使当我手动重新缩放它时,碰撞器在场景视图中也会变大,但值是相同的。

假设我有一个规模为(20,20,20)的Planet1和一个规模为(10,10,10)的Planet2。它们具有不同的比例,但它们的CircleCollider的值为1.5,即使它在场景视图中明显是两倍大。

我到处寻找,但我仍然没有找到一种方法来调整CircleCollider.radius的值以适应地球的大小。我不一定需要得到CircleCollider半径,只需要得到行星半径。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-17 19:19:15

所以,据我所知,对撞机在视觉上是正确的大小,所以他们将正常工作,但你试图获得它的值,它返回了某种局部值。所以只要按比例乘以它就行了!

代码语言:javascript
复制
Vector3 scl = gameObject.transform.scale();
float colliderRadius = radius*scl;

注意:我没有打开Unity,所以它更像是伪代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42855694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档