no-clip 是一种典型的 hack 行为,允许你穿过墙壁,所以 NoClip 又可以认为是避免碰撞体积的行为
因此,有两种思路来实现 NoClip
墙壁边界
游戏中设置了碰撞体作为墙壁边界,是 玩家对象 和墙壁发生了碰撞,而不是 相机
玩家对象有他的 XYZ,相机也有 XYZ,跟随 着玩家对象
通过禁止玩家对象和墙壁的交互来避免碰撞检测的发生;
寻找碰撞
像茶杯头这样的 2D 游戏的碰撞检测更加简单;
无论如何,不管是 2D 还是 3D 游戏,先找到一个让你停下来的东西;
第一种方法是:找到一个 bool 值,判断是否在发生碰撞(很多游戏可能没有这样的检测 bool 值)
另一种方法是:先找到玩家的 XYZ 坐标,然后你查看什么在访问 XYZ 坐标地址,如果我们发现在碰撞到一些东西的时候,产生了一些指令,指令可能正在读取一些值,也可能在写入一些值
相对的解决办法针对不同的游戏对应。