玩法集成
GMS包含几个简洁的API,可以帮助你快速地与你的玩法逻辑进行集成。
切换运动集

用例:你可以每一套动画就是一个运动集,然后,在游戏中,根据切换到不同的武器从而切换不同的运动集。
举个例子:我当前处于“持剑非防御”运动集,当我按下鼠标右键时,我进入到“持剑防御”的运动集,这时候我的移动/控制方式,以及动画都变成了该运动集下的设置,当我松开右键时,又回到了“持剑非防御”的运动集。
添加/移除运动定义

你可以使用少量的MovementSet标签,然后配合此节点将MovementSet多态化。
在GMS 项目中,默认有:MovementSet.Default/Crouched/ADS/ASD_Crouched 这几个运动集标签,
然后每一个运动定义中,也分别配置了与这些Tag所对应的运动集设置。
因此你可以根据你的游戏逻辑(比如武器切换)Push/Pop不同的运动定义,来更替不同的运动集设置。
在GMS案例中,角色切换男女的过程除了改变Mesh,也动态地替换了针对男女的不同的运动定义。
切换运动状态
运动状态,指的是走,跑,疾跑等状态。

除了手动设置不同的运动状态,在GMS中,你还可以根据Actor的实际移动速度去动态调整不同的运动状态(从而应用不同运动状态下的控制和动画设置。)
比如NPC,你通过调整外部调整NPC的速度,GMS会自动匹配与该速度最接近的控制/动画设置。
运动状态使用GameplayTag来标识的原因是:某些角色在某些运动模式下,可能会有更多或者更少的运动状态,因为通过GameplayTags,你可以更容易地添加新的运动状态。
切换旋转模式
在游戏中,你还会切换旋转模式。如果一个角色进入瞄准状态,你还希望切换其旋转模式到ViewDirection。这是最常见的用法。

比如战斗系统中:你锁定了一个目标,那么旋转模式应该被切换成ViewMode;如果你取消锁定一个目标,那么应该变成VelocityMode。
比如远程武器中:你按住右键时,你的旋转模式应该被设置为ViewMode。
角色朝向控制
GMS有自己的旋转系统,Character的旋转方式会根据旋转模式的不同,采用运动控制设置中的不同旋转设置。
在运动模式(LocomotionMode)为Grounded以及InAir的前提下,旋转模式为VelocityDirection时,Character会面朝Velocity的方向,旋转模式为ViewDirection时,Character会面朝ControlRotation的方向。
AI朝向控制
当你想手动控制AI角色的朝向时,你应当将角色的旋转模式设置为ViewDirection,并通过设置ControlRotation来更新角色应该面朝的方向。
你也可以调用GMS_CharacterMovementSysytem组件上的以SetRotation开头的API去直接控制角色的旋转。
切换叠层模式

响应事件
当你调用运动系统组件上的不同的函数,会触发对应的事件,允许你针对操作结果做出响应。

例如:当你从瞄准运动集(导致角色进入走路状态)切回默认运动集后,你希望角色回到小跑的状态。那么你可以进行如下操作:

其他可用API
在GMS中,所有常用的API都以GMS为开头进行了分类,你可以在蓝图中的ContextAction列表中敲入GMS以查看所有可用的API。