关于【如何让角色推拉箱子】视频中限制角色推动箱子的方式

这个文章主要是针对这个视频中
关于限制角色推动箱子的另一种实现方式
没看过视频的可以去看一下

首先视频里是用了一个float变量来储箱子的位置
在Update中再通过一个bool来判断箱子是否再移动状态
如果是可以移动的状态
那就将箱子的位置赋值给float变量
如果不是,那通过反复给箱子的position赋值之前定义的float
从而达到限制箱子移动并在移动时更新位置的需求
虽然达到了需求,但如果一个场景中有100个箱子,
那岂不是100个箱子每帧都在赋值?
这样想的话,似乎并不是很好,
于是我想了一下,给出了另一种方案就是
一开始就锁定每个箱子的X轴或者Y轴
让角色无法推动箱子
必须在按下按键时才解除X轴或者Y轴的锁定
而这个锁定XY轴的功能
Rigidbody2D已经有了
我们只需要在代码中调用即可
由于代码很简单这里就不给出演示
具体逻辑就是
射线检测检测到箱子的时候
更改这个箱子的Rigidbody2D的XY轴锁定
就能让人物可以推动箱子
如果角色松开按键那在把箱子的XY轴进行锁定
大概就是这样
这里顺便附上
在代码中锁定、解除Rigidbody2D中XYZ轴的用法
https://blog.csdn.net/qq_15267341/article/details/80776808
差不多这样,如果有问题可以在评论回复、或者私聊我,,
感谢你的阅读,下次再见吧~