U3D怎么实现复杂的移动?

0 条评论


  • 2

    0kk470咸鱼

    毁童年肯尼 赞同

    1. 逆风顺风这种可以定义一个人物移动速度变量,然后通过比较风向和人物的移动方向的夹角来计算移动速度的增加和衰减。

    2.冲刺击退这种你可以定义一个单位标记状态,这种强位移状态下应该重置移动相关的数据,忽略掉玩家的输入控制,然后用协程或者状态机Update来实现位移相关的计算。如果与风向关联的话那么你还要制定风的强度和方向影响位移的规则(比如顺风增加位移量,逆风减少位移量)。一般来说冲刺的方向与移动方向、人物朝向相同;击退的方向一般是攻击者的朝向或者飞行碰撞物(子弹之类)的速度方向,如果是爆炸这种击退那么是中心点指向范围内所有单位的向量方向。

    这里我给你贴一段我自己游戏的强位移实现,可以参考下

    da3e2cf4fc6c5500352af2fe83a54c86.jpg

    效果

    d74d0df898d35f274dbda73d69bf61c9.gif

    这个算是比较简单的位移了,像被击浮空、重力漩涡、爆炸、减速区、落水漂浮、降落伞下落等也是类似的实现机制,一般都是通过改变单位标记、速度和位移来实现

    3. 加减速过程其实就是手柄摇杆的灵敏度机制,松开摇杆减速的时候Axis轴值不会立即恢复到0,而是逐渐衰减,加速同理。这点Unity原生的InputModule是支持的。如果你要想自己控制的话可以写个wrapper类在Update里去控制轴值。

    更新于 2021-10-10 12:39:01 0 条评论


  • 0

    关若文文化体验师

    虽然牛关人不多,但你要不要猜猜为啥除了我没人回答。

    算了,纯嘲讽确实不友善。但这个问题问的都是程序实现过程中相当基础的部分,随便找几个教程都有讲的。

    更新于 2021-10-11 23:48:50 0 条评论

  • 登录奶牛关账号即可参与讨论

{{question['follower_count']}} 个玩家关注

...

相关元素

相关问题

DOTA2是如何调整英雄平衡性和地图平衡性的?

12人关注 4个回答

为什么中国没有3A级游戏制作厂商?

11人关注 8个回答

如何肉眼识别一个游戏用的是 uninty3d 还是 unreal ?

8人关注 4个回答