unity3d Unity -Unity 3D中的WASD运动

lskq00tm  于 2023-01-31  发布在  其他
关注(0)|答案(1)|浏览(260)

又见面了朋友们。
我试图使一个3D游戏中的统一,我试图移动我的角色与简单的WASD键。
然而,它只从一个方向成功。从相反的方向控制似乎颠倒。甚至当我用鼠标环顾四周。游戏被认为是第一人称射击游戏(FPS)。
玩家代码为:

[SerializeField]
private NavMeshAgent navMeshAgent;

// Start is called before the first frame update
void Start()
{
    controller = GetComponent<CharacterController>();
}

// Update is called once per frame
void Update()
{
    Vector3 direction = new Vector3(Input.GetAxis("Horizontal1"), 0, Input.GetAxis("Vertical1"));
    Vector3 velocity = direction * speed;
    velocity.y -= gravity;
    velocity = transform.TransformDirection(velocity);
    controller.Move(direction * Time.deltaTime);
    transform.position = navMeshAgent.nextPosition;
}

我该怎么办?我真的很感激你的帮助。

m1m5dgzv

m1m5dgzv1#

试试这个例子,用你自己的逻辑来移动你的角色,然后改变需要改变的地方

private float speed = 2.0f;
public GameObject character;

void Update () {
    
    if (Input.GetKeyDown(d)){
        transform.position += Vector3.right * speed * Time.deltaTime;
    }
    if (Input.GetKeyDown(a)){
        transform.position += Vector3.left* speed * Time.deltaTime;
    }
    if (Input.GetKeyDown(w)){
        transform.position += Vector3.forward * speed * Time.deltaTime;
    }
    if (Input.GetKeyDown(s)){
        transform.position += Vector3.back* speed * Time.deltaTime;
    }
}

相关问题