Unity2D教程:碰撞器Collider,抖动问题,人物旋转问题

关注专栏,持续更新哦

教程总目录


人不能进到树里面,所以需要相互碰撞来杜绝这个现象

  • 给人和树添加Collider 2D,点击Edit Collider修改碰撞器的位置和大小。
    在这里插入图片描述

  • 2D下一般以下半部分作为碰撞区域,比较真实。
    在这里插入图片描述

  • 添加Rigidbody 2D,让你的游戏对象被物理引擎所控制,它能通过受到推力和扭力来实现真实的物理表现效果。所有游戏对象必须包含刚体组件来实现重力、通过脚本施加力、或者与其他对象进行交互。
    该场景不需要重力,设置Gravity为0。
    且不希望人物旋转,所以锁定Z轴。
    在这里插入图片描述

  • 此时人和树就会分隔开了,但是碰撞的时候会抖动,因为之前的运动是直接修改位置来实现,相当于在某些时间点和刚体冲突了(之前说的进去了)。修改的方法是使用Rigidbody2D.MovePosition§来进行运动。

public float speed = 5;
    Rigidbody2D body;
    void Start()
    {
        body = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        float moveX = Input.GetAxisRaw("Horizontal");
        float moveY = Input.GetAxisRaw("Vertical");
        Vector2 p = body.position;
        p.x += moveX * speed * Time.deltaTime;
        p.y += moveY * speed * Time.deltaTime;
        body.MovePosition(p);
    }

猜你喜欢

转载自blog.csdn.net/jk_chen_acmer/article/details/106945419
今日推荐