小编Dan*_*ria的帖子

如何在 Unity 2D 中禁用对角线移动?

我想问一下Unity 2D有没有办法禁用对角线移动。问题是,当我同时按下“W”+“D”(移动键)时,角色开始沿对角线移动。因此,当组合按下按钮时,我希望角色完全笔直移动,而不是当我按下“d”或任何其他键来移动时,即使我仍然同时按下另一个按钮,角色也会对角线移动。也就是说,优先考虑我最后按下的按钮的功能。

这是一个简短的视频来进一步解释我的问题。

https://youtu.be/aPZii5HfP4s

这是我的角色移动的代码。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class keycontrol : MonoBehaviour
{

    public float moveSpeed = 0f;
    public Rigidbody2D rb2d;
    Vector2 movement;
    public Animator animator;


    // Update is called once per frame
    void Update()
    {
        movement.x = Input.GetAxisRaw("Horizontal");
        movement.y = Input.GetAxisRaw("Vertical");

        animator.SetFloat("walk_right", movement.x);
        animator.SetFloat("walk_left", -movement.x);
        animator.SetFloat("walk_down", -movement.y);
        animator.SetFloat("walk_up", movement.y);
    }

    void FixedUpdate()
    {
        rb2d.MovePosition(rb2d.position + movement * moveSpeed * Time.fixedDeltaTime);

        if(Input.GetKey("left shift"))
        {
            moveSpeed = 200 * Time.deltaTime;
            animator.speed = 1.5f;
        }
        else
        {
            moveSpeed …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine 2d-games

1
推荐指数
1
解决办法
3379
查看次数

标签 统计

2d-games ×1

c# ×1

unity-game-engine ×1