【问题标题】:How to get Rigidbody2D velocity magnitude x如何获得 Rigidbody2D 速度大小 x
【发布时间】:2018-10-14 03:14:16
【问题描述】:

如何获得 Rigidbody2D 速度大小 x。我试过这个代码。

Rigdbody.velocity.magnitude.x

但它不起作用。

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    根据Unity DocsVector3.magnitudefloat。您正在尝试访问它,就像它是 Vector3。换句话说,Vector3.magnitude 没有变量x


    我看到的另一个问题是您在Rigdbody 中有拼写错误。如果那是变量名,您应该更改它以防止将来的混乱和愤怒。通常,c# 变量应以小写字母 likeThis 开头


    考虑到这两个因素后,您的调用应如下所示:

    float magnitudeX = myRigidbody2D.velocity.x;
    

    float magnitude = myRigidbody2D.velocity.magnitude;
    

    【讨论】:

    • 请注意,rigidbody2drigidbody 在很久以前就被弃用了。您应该定义自己的变量来存储对这些组件的引用。并且刚体也不会返回 Rigidbody2d 类型的对象
    • @Bizhan 暗示他们应该制作自己的变量。并且使用带或不带“2d”的变量名是个人喜好
    • 当然可以,但是使用刚体不仅会给结果增加一个警告,而且还会与 3D 混淆。最好遵守这些规则。我编辑了您的答案以反映这一点,并且 OP 还想要向量在其 x 轴上的大小,所以答案将是 velocity.x 而不是 velocity.magnitude 我也添加到答案中
    • 好收获。我的意思是“刚体”是一个局部变量,但“myRigidbody2D”更直观。
    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-31
    • 1970-01-01
    相关资源
    最近更新 更多