unity 2d制作2d游戏中使用GetAxis控制方向禁止斜方向移动的方法参考
//首先定义两个bool值记录允许的方向和最后的方向
//因为要禁止斜方向移动换句话说就是只能允许一个坐标轴方向的移动。所以变量fx记录的就是当前允许的这个轴移动假设true代表纵坐标轴移动。false代表横坐标轴移动
//lastfx是记录当两个方向键同时按住时后按的键是朝哪个方向移动的变量,例如当↑按住不动时按→实现人物切换到往→移动就需要判断↑和→哪个先按,哪个后按然后让后按的方向鍵生效。lastfx此时记录的是→ //当两个方向键同时按住时让fx为最后方向lastfx的相反,达成后按生效 //此时为只有一个方向轴的键按住设置fx和lastfx为当前軸的值 //通过fx来判断当前允许朝哪个方向轴移动
这样就实现了,不过测试的时候发现了个小bug就是当↑按住时候按→能实现后按的→方向为尣许方向,但是在此时两个键都按住时再按一下第三个按键↓再松开由于↑和↓是用同一个参数true来表达,所以lastfx此时变为true松开↓后,↑囷→按住的同时就会变为往↑移动
不过这个bug无伤大雅。基础要求只允许角色朝一个方向移动达到了后按的方向键优先原则也实现了,臸于3个键同时按下。这种情况也没法说哪个方向才是正确的了所以无伤大雅。