unity 初探 ---- 移动与物理
今天来玩玩 unity, 随便在B站找个教材看看
里面告诉我unity 内建一个 角色控制器 来让开发者控制你的角色
看上去很好玩,大概看了一下 有不错的内容 比如设置上爬角度,上爬高度 都是对虚拟世界的一个很好玩的设计。 但是弄完移动代码后,我发现了严重的问题
这个 角色控制器 跟 物理系统是一个很混乱的关系。 它是有碰撞检测的,也就是你可以爬楼梯,但又没有物理系统,当你什么都不做的时候 你可以让自己浮在空中(绝对静止)。当你想把物理系统中的重力融合进来的时候,你就会发现你的角色开始鬼畜了。
这是因为它们就是两套系统,基本是独立的,但又同时影响你的游戏世界里面的唯一的坐标系统。这里有两个搞笑的现象。
一 物理系统认为不存在绝对的静止(因为会持续受重力影响),但是角色控制系统认为是有的,于是在互相干扰下,你的角色会微微的抽风,就是抖来抖去,呵呵
二 两个系统使用同一坐标,但又使用不同的缓存,比如重力认为你在掉落,不停地更新你的坐标,但是角色认为你是可以浮空的,于是 即便你已经被重力拉到地面,但当你下一次移动时,角色控制器会从缓存中的坐标(半空中)来开始你的移动,于是你的角色会出现瞬移现象。
我不确定 unity 是否有成熟方案,毕竟我才看了一小会。不过 B站一般都教你角色控制器,但unity官方文档里面关于角色移动,是直接叫你向角色施加一个力,这个方法是完美迎合物理系统的。当然,你这样做,会导致你在开发过程一直要考虑物理系统。。。
想一想,一般3D游戏 你的角色都是有物理系统的,比如摔死什么的。。。对吧
那角色控制器有鸡肋的感觉了。。。好。。。
今天就这样了。。。