2D Top Down Unity 游戏的跳跃功能?

Jump functionality for a 2D Top Down Unity game?

我正在努力寻找一种有效的方式让我的玩家在 2D Top Down 世界中跳跃。我可以看到很多关于平台游戏视图的教程,其中相机朝向玩家的一侧,但对于像 startdew Valley 这样的自上而下的视图,没有什么真正有效。

我没有使用物理学,所以我使用 Couroutine 移动瓷砖地图上的角色,它将玩家移动到网格上的下一个位置,这是我的 Update 和 DoMove 方法:

    private void Update()
    {
        if (!isMoving)
        {
            input.x = Input.GetAxisRaw("Horizontal");
            input.y = Input.GetAxisRaw("Vertical");

            if (input.x != 0)
                input.y = 0;

            if (input != Vector2.zero)
            {
                animator.SetFloat("Horizontal", input.x);
                animator.SetFloat("Vertical", input.y);

                var targetPos =  transform.position + new Vector3(input.x, input.y, 0f);

                // obstacle detection
                Vector3Int obstaclesMapTile = obstacles.WorldToCell(targetPos - new Vector3(0, .5f, 0));

                if (obstacles.GetTile(obstaclesMapTile) == null)
                {
                    StartCoroutine(DoMove(targetPos));
                }
            }

            animator.SetFloat("Speed", input.sqrMagnitude);
        }
    }



    private IEnumerator DoMove(Vector3 newPos)
    {
        isMoving = true;

        while ((newPos - transform.position).sqrMagnitude > Mathf.Epsilon)
        {
            transform.position = Vector3.MoveTowards(transform.position, newPos, moveSpeed * Time.fixedDeltaTime);
            yield return null;
        }

        transform.position = newPos;
        isMoving = false;
    }

有没有人可以给我一些关于如何添加跳跃功能的提示? (最好有动画支持?)我有点 运行 没主意了。

提前致谢。

只是把它当作动画而已。因为它是自上而下的 2D,所以它看起来更像是在跳跃,然后如果它在跳跃动画中必须越过某些东西,那么就测试一下。 例如;如果正在播放过洞和跳跃动画,则允许整体移动,否则掉落。所以如果玩家按下跳跃按钮,动画就会播放,并且应该有一些变量存储玩家当前所在的动画。