1、网络同步蓝图要继承Character(开始的时候可以使用ThirdPersonCharacter测试),如果继承Pawn,需要自己写客户端向服务端同步的代码,否则会出现一个客户端移动不能同步到服务端和其他客户端
2、新建一个TestGameMode,SpawnActor的时候选择自定义的TestCharacter,截图里面测试的是第三人称角色。在WordSettings里面GameMode选择自定义的TestGameMode
3、在Play下拉列表里MultiPlayer options选择玩家最大数量,截图里面设置的是4。这时候直接点Play,会出现4个窗口,移动任何一个窗口里面的人物,其他三个窗口里面会跟着动
4、打包之后,新建四个快捷方式,在每个快捷方式的“目标”处添加参数(右键快捷方式-属性),例如作为server的要添加listen(你要是问为什么要加问号?而不是减号-,可以在UE4源码中精准搜索"listen",包括引号,找到蛛丝马迹)
客户端添加127001 -game,前一个表示server的IP(本机是127001),后一个-game我也说不明白,反正要是不加就不对。client2和client3与client1一样配置。
5、接下来你可以按照任意顺序启动游戏
所有示例使用第三人称模板创建的项目并带有初始资源StarterContent
Function Replicateion(简称RPC)是在本地调用但在其他机器上远程执行的函数。RPC可以实现客户端或服务器之间相互发送消息。RPC可以设置为Reliable或Unreliable,其中Reliable调用必定发生,而Unreliable调用可能会因为网络问题被丢弃。因此大多处理视觉效果的RPC应该设置为Unreliable来避免过多地占用网络。
RPC主要包括Multicast(广播)、Run On Server(在服务端执行)和Run On Owning Client(在客户端执行)三种类型。其中广播类型在服务器上调用执行,然后自动转发给客户端;在服务端执行的函数有客户端调用,然后仅在服务器执行。在客户端执行的函数由服务器调用,然后仅在自己的客户端上执行。
1、打开ThirdPersonBP/Blueprints中的ThirdPersonCharacter蓝图,添加一个按下空格时在玩家为之生成火焰特效的事件。蓝图非常简单直接上图。
2、更改Number of Players改为4后运行。
可以看到所有窗口只有自己按下空格时才能生成火焰特效并且只能看到自己的特效。
3、在ThirdPersonCharacter蓝图添加一个MulticasTest事件并将Replicates设置为Multicast,将蓝图改为如图所示。
4、点击Play运行。
看到服务器上生成的特效在所有客户端都能看到,而客户端生成的特效只有自己才能看到。
重复步骤3将Replicates分别改为Run On Server。此处直接上效果图。
此时不论谁按空格键,只有服务器上相应的角色可以生成特效,客户端并不能看到任何效果。如果想要在客户端也能看到效果,我们需要确保特效设置为Replicates。
打开特效蓝图,并选中Replicates选项后重新开始运行。
1、打开ThirdPersonCharacter蓝图,创建一个String类型的变量Inventory并设置为Instance Editable和Replicated
2、添加按P键打印Inventory的事件蓝图。
3、在场景中添加一个Box Trigger
4、取消Rendering下面的Actor Hidden In Game
5、添加蓝图,重叠触发器时,如果重叠发生在服务器上,在服务器上运行 Add Item 事件,并将它复制到自己的客户端;当人物退出触发器盒时,在服务器上运行 Remove Item 事件,并将其复制到自己的客户端。其中Add Item 和 Remove Item 事件为自定义事件,并且Replicates属性全都为Run on owning Client。
6、编译运行。
可以看出刚开始启动时,每个角色打印的都为空,当一个角色进入触发器后会显示文本Item added ,按P时文本改为"has the item ",人物退出触发器会打印“Item Removed”,再次按P会打印空字符
最多只能容纳100人。《虚幻4引擎》简称ue4是由Epic Games公司推出的一款游戏开发引擎,相比其他引擎,虚幻引擎不仅高效、全能,还能直接预览开发效果,赋予了开发商更强的能力。虚幻引擎4在大约2分半的Demo演示中,将其强大的功能发挥得淋漓尽致。与之相关的游戏有《连线》《绝地求生:刺激战场》等等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)