我正在关注YouTube上的教程,以使第三人称射击游戏成为一体。在移动部分的某一点上,他键入MoveController.Move
。 Visual Studio告诉我没有那样的事情。我想知道这是我的计算机有问题还是只是需要快速更正?如果是这样,您能告诉我要更改什么吗?
我尝试将MoveControler
更改为characterController
,但是它没有任何改变。
void Update()
{
Vector2 direction = new Vector2(playerInput.Vertical * speed,
playerInput.Horizontal * speed);
MoveController.move(direction);
}
我希望它可以统一运行,但错误不会停止显示。
答案 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]将允许您在不公开检查器的情况下更改其值。我希望这会有所帮助!