首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Crouch probelm (Unity2D)

Crouch probelm (Unity2D)
EN

Stack Overflow用户
提问于 2022-08-30 18:12:21
回答 1查看 25关注 0票数 -1

当我只按一次"c“键时,角色就会像我想要的那样蜷缩。但是当我抱着"c“蹲下时,这个角色就会被埋在地面的对撞机下面。

屏幕截图

代码语言:javascript
复制
    //Crouch + Animation
    if (Input.GetButtonDown("Crouch"))
    {
        spriteRenderer.sprite = crouching;
        player_collider.size = crouching_size;
        anim.SetBool("crouch_ing", true);
    }
    if (Input.GetButtonUp("Crouch"))
    {
        spriteRenderer.sprite = standing;
        player_collider.size = standing_size;
        anim.SetBool("crouch_ing", false);
    }
    //--------------------
EN

回答 1

Stack Overflow用户

发布于 2022-08-30 22:18:09

我使用这段代码来再现问题,但我无法完全实现它。我跳过了动画部分,但在点击按钮和按住按钮时,我得到了完全相同的结果。

我设法让玩家出现在平台内,通过改变对撞机的偏移量。对撞机的大小在两种姿势中都是正确的,但是当你不调整偏移量到新的尺寸时,它可能会使你的对撞机不在你想要的地方。

尽管如此,玩家出现在地面对撞机下面的原因是玩家的对撞机边界与图形不匹配。我有两个想法来解决这个问题:

  1. 对撞机的大小和对这两种姿势的偏移都是不正确的。通过选择player、->、BoxCollider2D、->、单击“编辑对撞机”按钮,在游戏期间检查它们。这样,你就可以知道,如果你设置的一切都是正确的,并相应地修正它。
  2. 你的对撞机的大小和两种姿势的偏移都是正确的,但是你的动画正在以某种方式移动你的角色,这使得图形超出了对撞机的范围,从而导致了你的问题。确保你的角色动画正确。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73546852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档