1. 逆风顺风这种可以定义一个人物移动速度变量,然后通过比较风向和人物的移动方向的夹角来计算移动速度的增加和衰减。
2.冲刺击退这种你可以定义一个单位标记状态,这种强位移状态下应该重置移动相关的数据,忽略掉玩家的输入控制,然后用协程或者状态机Update来实现位移相关的计算。如果与风向关联的话那么你还要制定风的强度和方向影响位移的规则(比如顺风增加位移量,逆风减少位移量)。一般来说冲刺的方向与移动方向、人物朝向相同;击退的方向一般是攻击者的朝向或者飞行碰撞物(子弹之类)的速度方向,如果是爆炸这种击退那么是中心点指向范围内所有单位的向量方向。
这里我给你贴一段我自己游戏的强位移实现,可以参考下
效果
这个算是比较简单的位移了,像被击浮空、重力漩涡、爆炸、减速区、落水漂浮、降落伞下落等也是类似的实现机制,一般都是通过改变单位标记、速度和位移来实现
3. 加减速过程其实就是手柄摇杆的灵敏度机制,松开摇杆减速的时候Axis轴值不会立即恢复到0,而是逐渐衰减,加速同理。这点Unity原生的InputModule是支持的。如果你要想自己控制的话可以写个wrapper类在Update里去控制轴值。
U3D怎么实现复杂的移动?
0 条评论