在这个⾓⾊控制脚本中,可以看到很多新奇的写法。关键是,为什么要把移动量转化为转⾝量和前进量呢?要理解这个问题,⼀定要多进⾏游戏测试,体会转⾝与输⼊的关系。
当⾓⾊⾯朝前,输⼊朝后时,⾓⾊的前进量为0,转⾝量达到最⼤;⽽当⾓⾊⾯朝前,输⼊也朝前时,⾓⾊的转⾝量为0,前进量达到最⼤。
这种输⼊逻辑特别适⽤于拟真类⾓⾊控制的游戏,它可以让⾓⾊控制⾮常细腻和真实。但这种控制有个特点:不断向左⾛、向右⾛时,会发现⾓⾊在前后⽅向也有位移。拟真类的⾓⾊动作会造成运动不精确,其实这也符合真实世界的逻辑。
以上代码将世界坐标系的向量move,先转化到⾓⾊⾃⾝坐标系以便处理,转化之后move.z就是前进量了,但转⾝量是个难点。通过分析可知:当⾓⾊朝向与输⼊⽅向相反时,转⾝量达到最⼤;当⾓⾊朝向与输⼊⽅向相同时,转⾝量最⼩;当⾓⾊朝向与输⼊⽅向成90°时,转⾝量是⼀个中间值。⼤多数⼈不知道数学上哪种函数可以把⽐值转化为旋转,但通过阅读代码发现,Mathf.Atan2()函数适⽤于此情形。有兴趣的读者可以研究⼀下Atan2()函数的定义,它也属于三⾓函数中的反正切函数,但与常⻅的反正切函数定义不同。
总之,可以通过计算得到转⾝量m_TurnAmount和
Unity 3D脚本编程与游戏开发【3.7】
于 2024-04-03 23:04:11 首次发布
本文详细介绍了Unity 3D中根骨骼动画的运用和动画遮罩的概念及实战。通过根骨骼动画实现角色细腻真实的运动控制,动画遮罩则允许在不同动作间灵活组合,如跑步同时持不同武器。文章探讨了动画设置、动画状态机的使用以及如何通过遮罩实现肢体部分运动的屏蔽,为游戏开发中的角色动画扩展提供了有效方法。
摘要由CSDN通过智能技术生成