【问题标题】:Unity error when using rigidbody.MovePosition [duplicate]使用rigidbody.MovePosition时出现统一错误[重复]
【发布时间】:2018-08-15 06:22:40
【问题描述】:

我正在尝试在 Unity 2017.03.1f1 中创建一个星球游戏,并关注this tutorial 来制作星球的引力。每当我尝试输入这行代码时(大约 20 分钟):

void FixedUpdate()
{
    rigidbody.MovePosition(rigidbody.position + transform.TransformDirection(moveAmount) * Time.fixedDeltaTime);
}

我无法让线路正常工作,Unity 给了我这个文本:

"Assets/Scripts/FirstPersonController.cs(36,19): 错误 CS1061: 类型 UnityEngine.Component 不包含 MovePosition 的定义,并且找不到 UnityEngine.Component 类型的扩展方法 MovePosition。是您缺少程序集引用吗?”

我的代码有什么问题?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    声明为Componentrigidbody 变量早已被弃用。您现在需要使用GetComponent 函数来获取附加到此游戏对象的Rigidbody 组件。修复rigidbody.MovePosition 后,在使用rigidbody.position 的地方也做同样的事情。

    更新后的代码应该是这样的:

    Rigidbody rb = GetComponent<Rigidbody>();
    rb.MovePosition(rb.position + transform.TransformDirection(moveAmount) * Time.fixedDeltaTime);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多