为什么在Unity中使用MoveController.Move时会弹出错误?

时间:2019-04-02 18:04:32

标签: c# unity3d

我正在关注YouTube上的教程,以使第三人称射击游戏成为一体。在移动部分的某一点上,他键入MoveController.Move。 Visual Studio告诉我没有那样的事情。我想知道这是我的计算机有问题还是只是需要快速更正?如果是这样,您能告诉我要更改什么吗?

我尝试将MoveControler更改为characterController,但是它没有任何改变。

void Update()
{
     Vector2 direction = new Vector2(playerInput.Vertical * speed, 
     playerInput.Horizontal * speed);
     MoveController.move(direction);
}

我希望它可以统一运行,但错误不会停止显示。

1 个答案:

答案 0 :(得分:0)

则很有可能是一个单独的脚本。这是您可以解决它的一种方法。

确保从脚本(应将其附加到播放器)的播放器对象上附加“字符控制器”,然后继续缓存控制器并像上面一样调用方法。示例:

private CharacterController charController;
private Vector2 playerInput;

[SerializeField] private float speed;

/// <summary>
/// Start is called before the first frame update
/// </summary>
private void Start() {

    charController = GetComponent<CharacterController>();
}

/// <summary>
/// Update is called once per frame
/// </summary>
private void Update() {

    playerInput = new Vector2 (Input.GetAxisRaw("Vertical"), Input.GetAxisRaw("Horizontal"));

    charController.Move(playerInput * speed * Time.deltaTime);

}

使用[SerializeField]将允许您在不公开检查器的情况下更改其值。我希望这会有所帮助!