我正在尝试在Unity 2017.03.1f1中创建一个星球游戏,并遵循this tutorial来制造星球的引力。每当我尝试输入以下代码行时(大约20分钟标记):
void FixedUpdate()
{
rigidbody.MovePosition(rigidbody.position + transform.TransformDirection(moveAmount) * Time.fixedDeltaTime);
}
我无法使线路正常工作,而Unity给了我这段文字:
“资产/脚本/FirstPersonController.cs(36,19):错误CS1061:类型
UnityEngine.Component
不包含MovePosition
的定义,也没有类型{{的扩展方法MovePosition
1}}可以找到。您是否缺少程序集引用?”
我的代码有什么问题?
答案 0 :(得分:1)
声明为rigidbody
的{{1}}变量很久以前已被弃用。现在,您需要使用Component
函数来获取附加到此GameObject的GetComponent
组件。修复Rigidbody
之后,也可以使用rigidbody.MovePosition
进行相同的操作。
这是更新后的代码的样子:
rigidbody.position