1.创建输入操作,IA_Crouch
在输入映射中添加 IA_Crouch,在触发器中创建两个索引,已按下已松开来创建蹲伏输入。
蹲伏操作必须要勾选角色-角色移动-crouch勾选可蹲伏否则你的人物无法真正蹲下。
为蹲伏创建函数,创建布尔来判断是否蹲伏。
通过Switch Has Anthority控制代码防止作弊,在函数内部创建的变量只能在函数内使用,Switch Has Anthority 可以控制代码通过权限或者远程的方式来判断代码如何运行,Anthority权限运行服务器代码,Remate运行客户端代码。
先运行服务器事件再运行函数,我们在人物事件蓝图中设定事件 SRV_Crouch 在细节--复制--将未复制设置为在服务器上运行,并且将其设置为可靠函数,并连接蹲伏函数。
在蹲伏函数内,我们可以先创建分支然后在true和false中分别调用 Crouch,Un Crouch ,并且使用我们创建的本地布尔控制是否蹲伏,最后在Switch Has Anthority 的Remote节点连接 SRV_Crouch来使客户端运行代码需要通过服务器的复制。
将设置的布尔连接到Crouch ,UnCrouch后面,引入序列之后再替换
现在来制作动画部分,在状态机中创建Crouch状态
点开状态机Crouch,添加BS_Crouch_UA混合空间,添加前章的Movement Direction ,Movement Speed
添加混合空间之后还需要添加过渡,在动画事件蓝图中,创建playerbase的接口,使用接口获取Crouch,设置Crouch保存变量来获取蹲伏的状态,
idel——> crouch ,通过布尔控制是否蹲伏
crouch——idel ,通过布尔取反是来判断是否蹲伏,这时 编译不会报错,并且我们完成了蹲伏操作,唯一的问题是,服务器可以看到玩家蹲伏,玩家无法看到服务器蹲伏,我们下一节解决这个问题。