Unity踩坑记录——角色跟随相机朝向
Unity踩坑记录——角色跟随相机朝向
理理今天做ACT小demo时,打算给角色做一个八方向移动+跟随相机旋转的功能,结果遇到神奇的bug:按下s键时、角色旋转180度面向摄像机倒着跑,按下ad键则是旋转90度。
先展示我的代码,大家可以看看,能不能看出来我的bug
1 | private void CharacterRotation() |
解答
问题在于,脚本写的不错,但不是给八方向移动写的。一般一些游戏,角色动画喜欢用1D混合树,就比如原神(不得不说还是一个比较不错的参考对象的),你会发现原神里的角色,没有倒着走、左右走这样的动画,主要就靠一个向前走的动画。我的上面的脚本,给这种类型的游戏来说很合适——按下S键角色旋转180度朝后、AD键向左向右旋转90度 然而这里我的动画用的是2D混合树、拖了八个方向的动画,按下S键不希望角色旋转180度,再用上边的代码就不行了。最终解决方案,把Mathf.Atan2(Speed.x,Speed,y) * Mathf.Rad2Deg这一句删了就可以了。所以说,制作游戏要考虑游戏定位,不能随便套用。我的打算是做款类似只狼的ACT小demo,那么在移动方面,我需要考虑的应该还有很多,比如角色锁敌,一直朝向敌人,用Quaternion.Slerp会好一些。
评论
匿名评论隐私政策