我的意思是,当按W键的时候,S,A,D,比方说,按W键,而不是让相机直线向上移动,它同时向上和向左移动.对于所有其他关键点,它同时向两个方向移动.

我正在从更新中调用该方法

private void HandleCameraMovement()
    {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");

        Vector3 moveDirection = new Vector3(horizontal, 0f, vertical);
        moveDirection.Normalize();

        transform.Translate(moveDirection * cameraMoveSpeed * Time.deltaTime, Space.World);
    }

我以前也试过了,但结果是一样的:

private void HandleCameraMovement()
    {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");

        Vector3 moveDirection = new Vector3(horizontal, 0f, vertical).normalized * cameraMoveSpeed;
        transform.Translate(moveDirection * Time.deltaTime, Space.World);
    }

还有这个:

private void HandleCameraMovement()
    {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");

        Vector3 moveDirection = new Vector3(horizontal, 0f, vertical) * cameraMoveSpeed;
        transform.Translate(moveDirection * Time.deltaTime, Space.World);
    }

推荐答案

您只希望摄影机沿其自己的XY坐标移动,因此需要将输入值映射到XY,而不使用Space.World(默认参数为Space.Self).

Vector3 moveDirection = new Vector3(horizontal, vertical, 0f);
moveDirection.Normalize();
transform.Translate(moveDirection * cameraMoveSpeed * Time.deltaTime);

Csharp相关问答推荐

ASP.NET Core 8 Cors标题未显示

是否可以将gltf转换为字节数组,然后将字节数组转换回文件?

有没有方法让ASP.NET Core模型绑定器使用私有设置器来设置属性?

使用其可能实现的基类和接口的属性的方法

.NET最小API映射将T参数列表为[FromQuery]

在C#中使用in修饰符

CsWin32如何创建PWSTR的实例,例如GetWindowText

C#使用属性和值将JSON转换为XML

EF Core在请求列表时忽略列,但在按ID获取时包含

Unity 2D自顶向下弓旋转

如何模拟耐久任务客户端在统一测试和获取错误在调度NewsListationInstanceAsync模拟设置

如何在WPF的树视图中显示一个对象的两个或多个属性,其中只有一个是分层项?

取决于您的数据量的多个嵌套循环

如何将DotNet Watch与发布配置和传递给应用程序的参数一起使用?

如何将MemberInitExpression添加到绑定中其他Lambda MemberInitExpression

我什么时候应该在Dapper中使用Connection.OpenAsync?

此异步方法在重写方法中缺少等待运算符警告

流畅的验证--如何为属性重用规则?

C#USB条形码 scanner 在第二次扫描时未写入行尾字符

如何在C#.NET桌面应用程序中动态更改焦点工具上的后退 colored颜色