游戏 墙(不能走的地方)实现

项目中有个需求,只给了一张地图,根据地图实现IP的行走。

其中墙体的实现因个人水平有限只想到碰撞检测回退的方法,可是用这种方法走到拐角处就会有问题,原因是回退(设置位置)时不知道为什么会有一个向上弹的作用,也就是我明明改变的是IP的X值,在改变的过程中IP会向上弹然后会碰撞到上面墙体的碰撞框,而我回退是根据当前IP的方向回退的,所以导致跟上方的碰撞框会处于一直碰撞的情况,就可以向上走了,大大的BUG。

因此采用刚体的移动,会自动实现墙体的作用,只要放好碰撞框就可以了,非常简单。

1 rigidbody2d.MovePosition(rigidbody2d.position - Vector2.up * objectSpeed * Time.deltaTime);//上下行走移动
2 rigidbody2d.MovePosition(rigidbody2d.position - Vector2.right * objectSpeed * Time.deltaTime);//左右行走移动
原文地址:https://www.cnblogs.com/dsh20134584/p/7153708.html